Submission #916662

# Submission time Handle Problem Language Result Execution time Memory
916662 2024-01-26T08:57:22 Z Wansur Parrots (IOI11_parrots) C++14
52 / 100
2000 ms 15508 KB
#include <bits/stdc++.h>
#define f first
#define s second
#define ent '\n';

using namespace std;
typedef long long ll;
const int mx=2e5+12;

void output(int b);
void send(int a);

vector<int> g[mx];
int cnt[mx];
int p[mx];


void encode(int n, int a[]){
	mt19937 rnd(228);
	for(int i=0;i<n;i++){
		send(a[i]);
		for(int t=0;t<9;t++){
			int x=rnd()%256;
			send((a[i]^x));
		}
	}
}
#include <bits/stdc++.h>
#define f first
#define s second
#define ent '\n';

using namespace std;
typedef long long ll;
const int mx=2e5+12;

void output(int b);
void send(int a);

vector<int> g[mx];
int cnt[mx];
int p[mx];

void decode(int m, int n, int a[]){
	sort(a,a+n);
	for(int i=0;i<256;i++){
		cnt[i]=0;
		g[i].clear();
	}
	for(int i=0;i<n;i++){
		cnt[a[i]]++;
	}
	mt19937 rnd(228);
	for(int i=0;i<m;i++){
		p[i]=i;
		for(int t=0;t<9;t++){
			int x=rnd()%256;
			g[i].push_back(x);
		}
	}
	while(1){
		for(int i=0;i<256;i++){
			cnt[i]=0;
		}
		for(int i=0;i<n;i++){	
			cnt[a[i]]++;
		}
		for(int i=0;i<m;i++){
			swap(p[i],p[rnd()%m]);
		}
		vector<pair<int,int>> d;
		for(int i=0;i<n;i++){
			vector<int> v=g[p[i]];
			for(int x=0;x<=256;x++){
				vector<int> t={x};
				int mn=--cnt[x];
				for(int y:v){
					mn=min(mn,--cnt[(x^y)]);
					t.push_back((x^y));
				}
				if(mn>=0){
					d.push_back({p[i],x});
					break;
				}
				for(int x:t){
					cnt[x]++;
				}
			}
		}
		if(d.size()==m){
			sort(d.begin(),d.end());
			for(auto x:d){
				output(x.s);
			}
			return;
		}
	}
}

Compilation message

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:63:14: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   63 |   if(d.size()==m){
      |      ~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 23 ms 15132 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 108 ms 15132 KB Output is correct
2 Correct 146 ms 15152 KB Output is correct
3 Correct 213 ms 15152 KB Output is correct
4 Correct 240 ms 15152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 105 ms 15132 KB Output is correct
2 Correct 145 ms 15140 KB Output is correct
3 Correct 218 ms 15356 KB Output is correct
4 Correct 237 ms 15164 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 106 ms 15132 KB Output is correct
2 Correct 253 ms 15148 KB Output is correct
3 Correct 825 ms 15320 KB Output is correct
4 Execution timed out 2094 ms 15444 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Partially correct 250 ms 15236 KB Output is partially correct - P = 10.000000
2 Execution timed out 2091 ms 15436 KB Time limit exceeded
3 Execution timed out 2083 ms 15436 KB Time limit exceeded
4 Execution timed out 2083 ms 15492 KB Time limit exceeded
5 Execution timed out 2097 ms 15492 KB Time limit exceeded
6 Execution timed out 2095 ms 15508 KB Time limit exceeded
7 Execution timed out 2102 ms 15508 KB Time limit exceeded