Advertisement
Guest User

G4 in LOSH 2016

a guest
Jul 30th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. int o = 100000;
  5. int num1, num2, md[100*100*100], mas[100*100*100], kx;
  6. bool pp;
  7. int sum = 0;
  8. vector<int> all[100000];
  9. bool dfs(int l) {
  10.     md[l]=2;
  11.     //l*=-1;
  12.     //printf("");
  13.     for (int j:all[l]) {
  14.         if (md[j]==0 && j!=l) {
  15.             pp = dfs(j);
  16.             //++sum;
  17.             if (pp==1) {
  18.                 //System.print("");
  19.                 return 1;
  20.             }
  21.         } else {
  22.             if (md[j]==2 && j!=l) {
  23.                 //System.print("");
  24.                 return 1;
  25.             }
  26.         }
  27.     }
  28.     mas[kx]=l;
  29.     kx++;
  30.     md[l]=1;
  31.     return 0;
  32. }
  33. int summar(int sum) {
  34.     for (int i=0;i<20;++i) {
  35.         ++sum;
  36.     }
  37. }
  38. int main() {
  39.     cin >> num1 >> num2;
  40.     //summar(sum);
  41.     for (int i=0,a,b; i<num2;++i) {
  42.         cin >> a >> b;
  43.         all[a-1].push_back(b-1);
  44.     }
  45.     //summar(sum);
  46.     for (int i = 0;i<num1;++i) {
  47.         if (md[i]==0) {
  48.             pp = dfs(i);
  49.             if (pp==1) {
  50.                 break;
  51.             }
  52.         }
  53.     }
  54.     //summar(sum);
  55.     if (pp==1) {
  56.         cout << -1;
  57.     } else {
  58.         for (int i=num1-1; i>=0;--i) {
  59.             summar(sum);
  60.             cout << mas[i]+1 << "\n";
  61.         }
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement