답안 #132736

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
132736 2019-07-19T12:37:24 Z wilwxk Unscrambling a Messy Bug (IOI16_messy) C++14
49 / 100
5 ms 504 KB
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;

const int MAXN=2048;

void adiciona(vector<int> &v) {
	string cur;
	for(int i=0; i<v.size(); i++) cur+=('0'+v[i]);
	add_element(cur); 
}
bool checa(vector<int> &v) {
	string cur;
	for(int i=0; i<v.size(); i++) cur+=('0'+v[i]);
	return check_element(cur); 
}

vector<int> restore_permutation(int n, int w, int r) {
	vector<int> conf, respf; respf.resize(n);
	for(int i=0; i<n; i++) conf.push_back(0);
    for(int i=0; i<n; i++) {
    	conf[i]=1;
    	adiciona(conf);
    }
    compile_set();

    for(int i=0; i<n; i++) conf[i]=0;
    for(int i=0; i<n; i++) {
    	bool ok=0;
    	set<int> ruins;
    	while(1) {
    		int j=rand()%n;
    		if(conf[j]||ruins.find(j)!=ruins.end()) continue;
    		conf[j]=1;
    		if(checa(conf)) {
    			ok=1;
    			respf[j]=i;
    			break;
    		}
    		ruins.insert(j);
    		conf[j]=0;
    	}
    }

    return respf;
}

Compilation message

messy.cpp: In function 'void adiciona(std::vector<int>&)':
messy.cpp:9:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<v.size(); i++) cur+=('0'+v[i]);
               ~^~~~~~~~~
messy.cpp: In function 'bool checa(std::vector<int>&)':
messy.cpp:14:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<v.size(); i++) cur+=('0'+v[i]);
               ~^~~~~~~~~
messy.cpp: In function 'std::vector<int> restore_permutation(int, int, int)':
messy.cpp:29:11: warning: variable 'ok' set but not used [-Wunused-but-set-variable]
      bool ok=0;
           ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 380 KB n = 8
2 Correct 2 ms 376 KB n = 8
3 Correct 2 ms 256 KB n = 8
4 Correct 2 ms 256 KB n = 8
5 Correct 2 ms 256 KB n = 8
6 Correct 2 ms 376 KB n = 8
7 Correct 2 ms 376 KB n = 8
8 Correct 2 ms 380 KB n = 8
9 Correct 2 ms 256 KB n = 8
10 Correct 2 ms 376 KB n = 8
11 Correct 2 ms 256 KB n = 8
12 Correct 2 ms 376 KB n = 8
13 Correct 2 ms 376 KB n = 8
14 Correct 2 ms 256 KB n = 8
15 Correct 2 ms 376 KB n = 8
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 376 KB n = 32
2 Correct 2 ms 376 KB n = 32
3 Correct 2 ms 408 KB n = 32
4 Correct 2 ms 256 KB n = 32
5 Correct 3 ms 376 KB n = 32
6 Correct 2 ms 256 KB n = 32
7 Correct 3 ms 376 KB n = 32
8 Correct 2 ms 376 KB n = 32
9 Correct 2 ms 376 KB n = 32
10 Correct 2 ms 376 KB n = 32
11 Correct 2 ms 376 KB n = 32
12 Correct 2 ms 376 KB n = 32
13 Correct 2 ms 376 KB n = 32
14 Correct 2 ms 256 KB n = 32
15 Correct 2 ms 256 KB n = 32
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB n = 32
2 Correct 2 ms 376 KB n = 32
3 Correct 2 ms 392 KB n = 32
4 Correct 2 ms 376 KB n = 32
5 Correct 2 ms 376 KB n = 32
6 Correct 2 ms 376 KB n = 32
7 Correct 2 ms 376 KB n = 32
8 Correct 2 ms 376 KB n = 32
9 Correct 2 ms 376 KB n = 32
10 Correct 2 ms 376 KB n = 32
11 Correct 2 ms 256 KB n = 32
12 Correct 2 ms 376 KB n = 32
13 Correct 2 ms 256 KB n = 32
14 Correct 2 ms 256 KB n = 32
15 Correct 2 ms 504 KB n = 32
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 380 KB grader returned WA
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 376 KB grader returned WA
2 Halted 0 ms 0 KB -