Submission #351747

#TimeUsernameProblemLanguageResultExecution timeMemory
351747kylych03앵무새 (IOI11_parrots)C++14
81 / 100
43 ms1532 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void encode(int N, int M[])
{
  	int i, xr, rs = 1e9;
  	for(int t = 0 ; t < 256; t++){
  		int cnt = 0;
		  for(i = 0 ; i < N; i++){
			int f = (M[i] ^ t);
			for(int j= 0 ; j < 8 ;j++){
				if(( f>>j )& 1){ 
					if(j%2==1)
						cnt++;
					cnt++;	
				}
			}
		}
		if(cnt  < rs){
			rs =  cnt;
			xr = t;	
		}
  	}
  	
  	for(i = 0 ; i < N; i++)
  		M[i]^=(xr);
  	send(xr);
  	send(xr);
  	send(xr);
  	send(xr);
  	
  	if(N > 32){
  		for(i=0; i<N; i++){
			int packet=(i<<2);
			for(int j= 0 ; j < 8 ;j++){
				  if(( M[i]>>j )&1){
				  	if(j%2==1)
					send(packet+j/2);
					send(packet+j/2);
				}	
			}
		}
  	}
  	else
  	
	for(i=0; i<N; i++){
		int packet=(i<<3);
		for(int j= 0 ; j < 8 ;j++){
			  if(( M[i]>>j )&1){
				send(packet+j);
			}	
		}
	}
	
}
#include "decoder.h"
#include "decoderlib.h"
#include <bits/stdc++.h>
using namespace std;
int res[256], f[256];
void decode(int N, int L, int X[])
{
  	int i, xr;
  	
	for(i=0; i<256; i++){ 
	  	res[i]=0;
	  	f[i]=0;
	}
	for(int t = 0 ; t  < 256; t++){
		
		int cnt = 0 ;
		for(i=0; i < L; i++){
			if(X[i] == t)
				cnt++;	
		}
		if (cnt >=4){
			xr = t , cnt =0;	
			for(i=0; cnt < 4; i++){
				if(X[i] == t){
					f[i]=1;
					cnt++;	
				}
			}
			break;
			
		}
	
	}
		for(i=0; i < L; i++){
		if ( f[i])
			continue;
		if(N > 32)
			res[X[i]>>2]+=( 1<<((X[i]&3)*2));
		else
	  		res[X[i]>>3]|=( 1<<(X[i]&7));	
	}
	
	for(i=0; i<N; i++) {   
	    output(res[i]^xr);
	}
 
}

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:31:8: warning: 'xr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   31 |    send(xr);
      |    ~~~~^~~~

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:44:12: warning: 'xr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   44 |      output(res[i]^xr);
      |      ~~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...