Submission #351673

#TimeUsernameProblemLanguageResultExecution timeMemory
351673kylych03Parrots (IOI11_parrots)C++14
0 / 100
45 ms1676 KiB
#include "encoder.h"
#include "encoderlib.h"
#include <bits/stdc++.h>
using namespace std;
void encode(int N, int M[])
{
  	int i, xr, res = 1e9;
  	for(int t = 0 ; t <= 255; 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  < res){
			res =  cnt;
			xr = t;	
		}
  	}
  	
  	for(i = 0 ; i < N; i++)
  		M[i]^=(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[100];
void decode(int N, int L, int X[])
{
  	int i;
	for(i=0; i<N; i++) 
	  	res[i]=0;
	for(i=0; i<L; i++){
		if(N > 32)
			res[X[i]>>2]+=( 1<<((X[i]&3)*2));
		else
	  		res[X[i]>>3]|=( 1<<(X[i]&7));	
	}
	int xr, rs = 1e9;
  	for(int t = 0 ; t <= 255; t++){
  		int cnt = 0;
		  for(i = 0 ; i < N; i++){
			int f = (res[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++) {   
	    output(res[i]^xr);
	}

}

Compilation message (stderr)

encoder.cpp: In function 'void encode(int, int*)':
encoder.cpp:27:9: warning: 'xr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   27 |     M[i]^=(xr);
      |     ~~~~^~~~~~

decoder.cpp: In function 'void decode(int, int, int*)':
decoder.cpp:36:12: warning: 'xr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   36 |      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...