Submission #312538

#TimeUsernameProblemLanguageResultExecution timeMemory
312538mohamedsobhi777Mouse (info1cup19_mouse)C++14
Compilation error
0 ms0 KiB
#include "grader.h" #include<bits/stdc++.h> using namespace std ; int n, num ; vector<int> per, ans ; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); vector<int> indi, goods ; void del(int x){ goods.push_back(x) ; for(int i = 0 ;i < (int) indi.size() ; ++ i){ if(indi[i] == x){ indi.erase(indi.begin() + i , indi.begin() + i + 1) ; return ; } } } void print(){ for(int i = 0 ;i < n; ++ i) cout<< ans[i] <<" " ; cout<<".\n" ; } vector<int> nott[300] ; bool ngood[400][400] ; void anot(int x , int y){ ngood[x][y] = 1; nott[x].push_back(y) ; } int epoch(){ int ret = 0 ; for(int i = 0 ;i < n; ++ i){ int k = ans[i] ; for(auto u : nott[i]){ if(k == u){ ++ ret ; break ; } } } } bool good(vector<int> &vec){ return epoch() > (int) indi.size() / 2 ; } bool bad(int x, int y){ return ngood[x][ans[y]] + ngood[y][ans[x]] ; } int ovall(int x, int y){ int ret = 0 ; for(int i = 0 ;i < n; ++ i){ ret += ngood[i][ans[i]] ; } ret += ngood[x][ans[y]] + ngood[y][ans[x]] ; return ret ; } void solve(int n){ for(int i = 1;i <= n ; ++ i){ ans.push_back(i) ; } for(int i = 0 ;i < n; ++ i){ indi.push_back(i) ; } for(int i = 0 ;i < n; ++ i){ // int x ; cin >> x ; // per.push_back(x) ; } random_shuffle(ans.begin() , ans.end() ) ; int tim = 0 ; int las = 0 ; las = query(ans) ; int tmr = 0 ; while(tim ++ < 1000000){ int sz = (int) indi.size() ; vector<pair<int,pii> > simu ; for(int j = 0 ;j < 8 || simu.empty() ; ++ j){ int x = rng() % sz ; int y = rng() % sz ; if(x == y)continue ; x = indi[x] ; y = indi[y] ; int ov = ovall(x , y) ; simu.push_back({ov ,{x , y}}) ; } sort(simu.begin() , simu.end()) ; int x = simu[0].second.first ; int y = simu[0].second.second ; tmr = 0 ; swap(ans[x],ans[y]) ; int now = query(ans) ; if( abs(now - las) == 2){ del(x) ; del(y) ; }else if(now == las + 1){ if(goods.size()){ int gud = goods.back() ; vector<int> qu = ans ; swap(qu[gud],qu[x]) ; if(query(qu) == now - 2){ del(x) ; }else{ del(y) ; } } }else if(now == las -1 ){ if(goods.size()){ int gud = goods.back() ; vector<int> qu = ans ; swap(qu[x],qu[y]); swap(qu[gud],qu[x]) ; if(query(qu) == las - 2){ del(x) ; }else{ del(y) ; } } }else{ anot(x , ans[x]) ; anot(x , ans[y]) ; anot(y , ans[x]) ; anot(y , ans[y]) ; } if(now < las)swap(ans[x],ans[y]) ; las = max(las , now) ; if(now == n) break ; } return ; if(las == n) cout<<"ok " ; else { for(auto u : ans)cout<< u <<" " ; cout<<"incorrect " ; } return ; }

Compilation message (stderr)

mouse.cpp: In function 'int epoch()':
mouse.cpp:45:1: warning: no return statement in function returning non-void [-Wreturn-type]
   45 | }
      | ^
mouse.cpp: In function 'void solve(int)':
mouse.cpp:85:33: error: 'pii' was not declared in this scope
   85 |                 vector<pair<int,pii> > simu ;
      |                                 ^~~
mouse.cpp:85:36: error: template argument 2 is invalid
   85 |                 vector<pair<int,pii> > simu ;
      |                                    ^
mouse.cpp:85:38: error: template argument 1 is invalid
   85 |                 vector<pair<int,pii> > simu ;
      |                                      ^
mouse.cpp:85:38: error: template argument 2 is invalid
mouse.cpp:86:46: error: request for member 'empty' in 'simu', which is of non-class type 'int'
   86 |                 for(int j = 0 ;j < 8 || simu.empty() ; ++ j){
      |                                              ^~~~~
mouse.cpp:93:30: error: request for member 'push_back' in 'simu', which is of non-class type 'int'
   93 |                         simu.push_back({ov ,{x , y}}) ;
      |                              ^~~~~~~~~
mouse.cpp:95:27: error: request for member 'begin' in 'simu', which is of non-class type 'int'
   95 |                 sort(simu.begin() , simu.end()) ;
      |                           ^~~~~
mouse.cpp:95:42: error: request for member 'end' in 'simu', which is of non-class type 'int'
   95 |                 sort(simu.begin() , simu.end()) ;
      |                                          ^~~
mouse.cpp:96:31: error: invalid types 'int[int]' for array subscript
   96 |                 int x = simu[0].second.first ;
      |                               ^
mouse.cpp:97:31: error: invalid types 'int[int]' for array subscript
   97 |                 int y = simu[0].second.second ;
      |                               ^