南邮-My Summary

                                                  My Summary

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:115            测试通过:35

描述

         I have a dream that one day in the foyer of the ACM/ICPC World Finals Contest , I could solve all the problems and be the champion . But things always went beyond my mind , we just solved four problems .

         We submitted Problem B at 29 minutes and got “ Accept “ , we passed Problem A at 85 minutes , then we got “Wrong” at 94 minutes on Problem G , but we soon got “Accept” at 98 minutes , then we submitted Problem D but got “Wrong” …..  At last , we passed Problem ABCG , and Problem D was still “Wrong” .

         Now I have to write a summary about the contest , I read our submission states from PC^2 , and I need to list the problem states which illustrates the “Accept” problems and “Wrong” problems , Please help me to do so .

输入

         The first line of input is one integer T ( T<=100 ) , giving the number of test cases in the input . Each test case starts with a line containing a positive integer N ( N<=100 ) , representing the number of the submission states. In the next N lines contains an integer t(0<=t<=300),the submission time.Then a character ( from ‘A’ to ‘J’ ) , the ID of submission problem follows . At last is a string ( “Accept” or “Wrong” ) , the states of this submission .

输出

         For each test case , output two lines , the first line print “Accept” , follow by a colon , a space , then list the name of those accept problems in alphabetical ascending order , if there is no “Accept” problem ( what a shame ! ) , just leaves it blank . The second line is about “Wrong” states , the style of which is similar to the first line . Print a blank line after each test case .

样例输入

1
10
29 B Accept
85 A Accept
94 G Wrong
98 G Accept
120 D Wrong
170 C Wrong
183 C Accept
190 D Wrong
300 A Accept
300 B Wrong

样例输出

Accept: ABCG
Wrong: D

题目来源

NUPT ACM

#include<iostream>
#include<set>
#include<string>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n,i;
		cin>>n;
		int temp;
		string str;
		set<char> ch1,ch2;
		set<char>::iterator p,q;
		int count=0;
		char c;
		for(i=0;i<n;i++)
		{
			cin>>temp>>c>>str;
			if(str=="Accept")
				ch1.insert(c);
			else
				ch2.insert(c);
		}
		cout<<"Accept: ";
		for(p=ch1.begin();p != ch1.end();p++)
			cout<<*p;
		cout<<endl;
		cout<<"Wrong: ";
		for(p=ch2.begin();p != ch2.end();p++)
		{
			q=ch1.find(*p);//find函数:如果容器中存在*p,则返回指向该元素的迭代器,如果不存在,则返回超出末端的迭代器。
			if(q == ch1.end())
				cout<<*p;
		}
		cout<<endl<<endl;
	}
}


你可能感兴趣的:(迭代器,容器,find函数)