CodeForces 2A - Winner(模拟)

题目链接:http://codeforces.com/problemset/problem/2/A

A. Winner

time limit per test

1 second

memory limit per test

64 megabytes

input

standard input

output

standard output

The winner of the card game popular in Berland "Berlogging" is determined according to the following rules. If at the end of the game there is only one player with the maximum number of points, he is the winner. The situation becomes more difficult if the number
of such players is more than one. During each round a player gains or loses a particular number of points. In the course of the game the number of points is registered in the line "name
score", where name is a player‘s name, and score is
the number of points gained in this round, which is an integer number. If score is negative, this means that the player has lost in the round. So, if two or more players have the maximum number of points (say, it equals to m)
at the end of the game, than wins the one of them who scored at least m points first. Initially
each player has 0 points. It‘s guaranteed that at the end of the game at least one player has a positive number of points.

Input

The first line contains an integer number n (1??≤??n??≤??1000), n is
the number of rounds played. Then follow n lines, containing the information about the rounds in "name
score" format in chronological order, where name is a string of lower-case Latin letters with the length from 1 to 32, and score is
an integer number between -1000 and 1000, inclusive.

Output

Print the name of the winner.

Sample test(s)

input

3
mike 3
andrew 5
mike 2

output

andrew

input

3
andrew 3
andrew 2
mike 5

output

andrew

题意:

给出一些列的名字和分数!正的表示加分。负的表示减分!

求终于分数最大的人的名字。

假设分数最大的人有多个。输出最先达到最大分数的人。

代码例如以下:

#include <cstdio>
#include <iostream>
#include <map>
using namespace std;
map<string, int> a,b;
string s[1017];

int main()
{
    int x[1017];
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++)
    {
        cin >> s[i] >> x[i];
        a[s[i]]+=x[i];
    }
    int maxx = 0;
    for(int i = 1; i <= n; i++)
    {
        if(a[s[i]] > maxx)
            maxx = a[s[i]];
    }

    for(int i = 1; i <= n; i++)
    {
        b[s[i]]+=x[i];
        if((b[s[i]]>=maxx) && (a[s[i]]>=maxx))//在终于分数是最大的人中,选首先达到最大分数的人
        {
            cout << s[i];
            break;
        }
    }
    return 0;
}
时间: 2024-10-10 16:05:04

CodeForces 2A - Winner(模拟)的相关文章

CodeForces 2A Winner

Winner Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 2A Description The winner of the card game popular in Berland "Berlogging" is determined according to the following rules.

Codeforces 2A Winner (map运用)

Winner Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on CodeForces. Original ID: 2A 64-bit integer IO format: %I64d      Java class name: (Any) Prev Submit Status Statistics Discuss Next Type: None None Graph Theory      2-SAT 

CF 2A Winner(STL+模拟)

题目链接:http://codeforces.com/contest/2/problem/A 题目: The winner of the card game popular in Berland "Berlogging" is determined according to the following rules. If at the end of the game there is only one player with the maximum number of points,

codeforces 591B Rebranding (模拟)

Rebranding Problem Description The name of one small but proud corporation consists of n lowercase English letters. The Corporation has decided to try rebranding - an active marketing strategy, that includes a set of measures to change either the bra

Codeforces 389B(十字模拟)

Fox and Cross Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description Fox Ciel has a board with n rows and n columns. So, the board consists of n × n cells. Each cell contains either a symbol '.', or a s

CodeForces 697B Barnicle 模拟

强行模拟 纪念一下…… 1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<math.h> 5 #include<string.h> 6 #include<string> 7 #include<map> 8 #include<vector> 9 #include<queue> 10 #define M(a

CodeForces - 344A Magnets (模拟题)

CodeForces - 344A Magnets Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Submit Status Description Mad scientist Mike entertains himself by arranging rows of dominoes. He doesn't need dominoes, though: he uses rectangula

CodeForces 670E(模拟双向链表)

题意:给你一串合法的括号和当前光标的位置和一些操作,问操作完之后的串是怎么样的 思路:模拟一个双向链表的操作,首先先预处理出配对的括号组,然后模拟即可 #include<bits\stdc++.h> using namespace std; const int maxn = 1e6; struct Node { int l,r; }nodes[maxn]; char s1[maxn],s2[maxn]; int a[maxn],d[maxn]; int main() { int n,m,pos

CodeForces 709B Checkpoints 模拟

题目大意:给出n个点的坐标,和你当前的坐标,求走过n-1个点的最短路程. 题目思路:走过n-1个点,为了使路程更短,那么不走的点只可能第一个点或最后一个点.模拟就行了,比较恶心. 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 #include<stdio.h> 6 #include<stdlib.h> 7 #inc