SuitNdtie

Chemical Reactant

Apr 27th, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<map>
  3. #include<vector>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     int n,m;
  9.     scanf("%d %d",&n,&m);
  10.     map<vector<int> , int > mymap;
  11.     for(int i = 1 ; i <= n ; i++){
  12.         vector<int> temp(m);
  13.         for(int j = 0 ; j < m ; j ++){
  14.             scanf("%d",&temp[j]);
  15.         }
  16.         mymap.insert({temp,i});
  17.     }
  18.     vector<int> target(m);
  19.     for(int i = 0 ; i < m ; i ++){
  20.         scanf("%d",&target[i]);
  21.     }
  22.     std::map<vector <int> ,int>::iterator its = mymap.find(target) , its2;
  23.     if(its != mymap.end()){
  24.         printf("%d",its->second);
  25.         return 0;
  26.     }
  27.     for(its = mymap.begin() ; its != mymap.end() ; advance(its,1)){
  28.         vector<int> comp(m);
  29.         for(int j = 0 ; j < m ; j++){
  30.             comp[j] = target[j] - its->first[j];
  31.         }
  32.         if(mymap.count(comp)){
  33.             its2 = mymap.find(comp);
  34.             int x = its->second;
  35.             int y = its2->second;
  36.             if(x != y){
  37.                 if(x < y){
  38.                     printf("%d %d",x,y);
  39.                 }else{
  40.                     printf("%d %d",y,x);
  41.                 }
  42.                 //printf("%d %d",(x < y ? x : y),(x > y ? x : y));
  43.                 return 0;
  44.             }
  45.         }
  46.     }
  47.     printf("NO");
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment