Advertisement
IlidanBabyRage

invertGraph.cpp

May 31st, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <cstdio>
  4.  
  5. using namespace std;
  6.  
  7. int main(){
  8.    
  9.     int n;
  10.     cin >> n;
  11.     vector<vector<int> > v1;
  12.     vector<vector<int> > v2;
  13.  
  14.     string s;
  15.     char tmpc;
  16.     int j = 0, tmpi;
  17.     v1.resize(n);
  18.     v2.resize(n);
  19.     scanf("%c", &tmpc);
  20.     while(j < n){
  21.         scanf("%c", &tmpc);
  22.         if (tmpc == ' '){
  23.             cout << 'h';
  24.             continue;
  25.         }
  26.         if (tmpc >= '0' && tmpc <= '9'){
  27.             tmpi = (int)tmpc - 48;
  28.             do{
  29.                 scanf("%c", &tmpc);
  30.                 if (tmpc != ' ' && tmpc != '\n'){
  31.                     tmpi = tmpi * 10 + ((int)tmpc - 48);
  32.                     // cout << tmpi << endl;
  33.                 }
  34.             }while(tmpc != ' ' && tmpc != '\n');
  35.             // cout << "push " << endl;
  36.             v1[j].push_back(tmpi);
  37.         }
  38.         if (tmpc == '\n'){
  39.             j++;
  40.         }
  41.     }
  42.  
  43.     for (int i = 0; i < n; i++){
  44.         for (int j = 0; j < v1[i].size(); j++)
  45.             v2[v1[i][j] - 1].push_back(i + 1);
  46.     }
  47.     cout << n << endl;
  48.     for (int i = 0; i < n; i++){
  49.         for (int j = 0; j < v2[i].size(); j++)
  50.             cout << v2[i][j] << " ";
  51.         cout << endl;
  52.     }
  53.  
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement