- #include <algorithm>
- #include <cassert>
- #include <cctype>
- #include <cfloat>
- #include <climits>
- #include <cmath>
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <iostream>
- #include <limits>
- #include <map>
- #include <queue>
- #include <set>
- #include <sstream>
- #include <stack>
- #include <string>
- #include <utility>
- #include <vector>
- #define G getchar()
- #define FOR(i,t) for(i=1;i<=t;i++)
- #define FORO(j,n) for(j=0;j<n;j++)
- #define EPS DBL_EPSILON
- #define abs(x) (((x)<0)?-(x):(x))
- #define ZERO(x) (abs(x) < EPS)
- #define EQ(a,b) (ZERO((a)-(b)))
- #define max(a,b) (a)>(b)?(a):(b)
- #define min(a,b) (a)<(b)?(a):(b)
- #define memo(a,v) memset(a,v,sizeof(a))
- #define PI 2*acos(0.0)
- #define all(a) a.begin(),a.end()
- #define EPS 1e-8
- #define INF -1U >> 1
- #define LL int int
- #define NL puts("")
- #define MAX 30001
- using namespace std;
- map<string ,int >m;
- vector<int >v[20010];
- //string st1,st2;
- char in[20010];
- int j=0;
- void fix(int i)
- {
- int k;
- in[i]=-1;
- FORO(k,v[i].size())
- {
- in[v[i][k]]--;
- }
- }
- bool comp(int a,int b)
- {
- if(a>b) return true;
- return false;
- }
- int main()
- {
- int i,t;
- scanf("%d",&t);
- FOR(i,t)
- {
- m.clear();
- memo(in,0);
- int a,k;
- j=0;
- scanf("%d",&a);
- while(a--)
- {
- G;
- char st1[100],st2[100];
- scanf("%s %s",&st1,&st2);
- if(!(m.count(st1)>0))
- m[st1]=j++;
- if(!(m.count(st2)>0))
- m[st2]=j++;
- v[m[st1]].push_back(m[st2]);
- in[m[st2]]++;
- }
- int fin;
- fin = 0;
- while(fin<j)
- {
- FORO(k,j)
- if(in[k]==0)
- fix(k);
- fin++;
- }
- //FORO(k,j) printf("%d ",in[k]);
- //NL;
- sort(in,in+j,comp);
- if(in[1]>0)
- printf("Case %d: No\n",i);
- else printf("Case %d: Yes\n",i);
- FORO(k,j)
- v[k].clear();
- }
- return 0;
- }
বৃহস্পতিবার, ৮ নভেম্বর, ২০১২
ligjt oj---1003 - Drunk
এতে সদস্যতা:
মন্তব্যগুলি পোস্ট করুন (Atom)
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন