# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
315498 | 2020-10-23T01:37:56 Z | daniel920712 | Mouse (info1cup19_mouse) | C++14 | 0 ms | 256 KB |
#include <iostream> #include <stdio.h> #include <stdlib.h> #include <algorithm> #include "grader.h" using namespace std; vector < int > how; bool have[500]={0}; int xx[500]; map < vector < int > , int > all; int Query(vector < int > tt) { if(all.find(tt)==all.end()) all[tt]=query(tt); return all[tt]; } void solve(int N) { int a,b,c,now,i,j,jj,kk,k,ok; how.clear(); for(i=0;i<N;i++) { how.push_back(i+1); have[i+1]=0; xx[i+1]=i+1; } random_shuffle(xx+1,xx+N+1); for(i=0;i<N;i++) { for(jj=1;jj<=N;jj++) { j=how[jj]; if(!have[j]) { how[i]=j; now=0; for(kk=1;kk<=N;kk++) { k=how[kk]; if(!have[k]&&k!=j) { how[i+now+1]=k; now++; } } } a=Query(how); if(a==N) return; if(i==0) { ok=1; for(k=i+1;k<N;k++) { swap(how[i],how[k]); b=Query(how); if(b==N) return; swap(how[i],how[k]); if(a>b) continue; else { ok=0; break; } } if(ok) { have[how[i]]=1; break; } } else { swap(how[i],how[0]); b=Query(how); if(b==N) return; swap(how[i],how[0]); if(a-b==2) { have[how[i]]=1; break; } } } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 256 KB | Integer 0 violates the range [1, 7] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 256 KB | Integer 0 violates the range [1, 7] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 256 KB | Integer 0 violates the range [1, 7] |
2 | Halted | 0 ms | 0 KB | - |