|
Description
Enjoy Gleb. For other's interested, this solves CCC S3.
#include <fstream> #include <iostream> #include <vector> using namespace std; struct Node { int friendsWith; }; int main() { ifstream in("S3.in"); ofstream out("S3.out"); vector<Node> allFriends(10000); int nFriends(0); in>>nFriends; for (int i=0; i< nFriends; i++) { int f1(0); int f2(0); in>>f1; in>>f2; allFriends[f1].friendsWith = f2; } int f1(0); int f2(0); in>>f1; in>>f2; do { int cntFri = allFriends[f1].friendsWith; int seperation; seperation = 0; for (; cntFri != f2 || cntFri == f1; seperation++) { cntFri = allFriends[cntFri].friendsWith; if (seperation > 10000) break; } if (cntFri != f1 && seperation < 10000) { out<<"Yes "<<seperation<<endl; } else { out<<"No"<<endl; } in>>f1; in>>f2; } while (f1!=0 && f2!=0); in.close(); out.close(); return 0; } |
|