// Este programa testa se existe uma matriz de paridade de tamanho dim para dados r e d
// para até r = 24
#include <iostream>
using namespace std;
int VI[1000], C[1000000], P[10000], TL[16777216], THA[16777216], H[16777216], TH[167777216], COD[1100000][50], MP[256][256],
d, r, tc, t1, te, n, dim, i, j, k, nc, tsc, npc, ntl, npcli, p2r, p2, nvi, tnvi, cont;
int Dist(int a, int b){
int k=0, j;
for (j=1; j<=31; j++){
if (a%2 != b%2) k++; a=a/2; b=b/2;
}
return k;
}
void InsereTL(int p, int ki, int kf){
int i, j, tha;
//cout<<endl<<"Insercoes em TL para "<<p<<" H[437]/TH[437] ="<<H[437]<<"/"<<TH[437]<<endl;
for (i=ki; i <=kf; i++) if (TH[TL[i]]< d-2){
j = TL[i]^p;
H[j] +=1;
tha = TH[TL[i]]+1;
//cout<<"TL[i] = "<<TL[i]<<" p = "<<p<<" "<<" j = "<<j<<" H[j] = "<<H[j]<<endl;
if (tha < TH[j] || TH[j]==0){ H[j] +=1; TL[++ntl] = j; THA[ntl] = TH[j]; TH[j] = tha; } //cout<<TL[ntl]<<"/"<<THA[ntl]<<" ";}
}
//cout <<" Final: H[437]/TH[437] ="<<H[437]<<"/"<<TH[437]<<endl; //cin.get();
}
void RetiraTL(int p, int ki, int km, int kf){
int i, j;
//cout<<endl<<"Deleções em TL para "<<p<<" H[437]/TH[437] ="<<H[437]<<"/"<<TH[437]<<endl;
for (i=km+1; i <=kf; i++) {
j = TL[i];
H[j] -= 1;
TH[j] = THA[i]; //cout<<TL[i]<<"/"<<THA[i]<<" ";
}
for (i=ki; i <=km; i++) if (TH[TL[i]]< d-2){
j = TL[i]^p;
H[j] -= 1;
}
ntl = km;
//cout <<" Final: H[437]/TH[437] ="<<H[437]<<"/"<<TH[437]<<endl; //cin.get();
}
//void ImprimeBin(int p, int t){
// if (t > 0){
// ImprimeBin(p/2, t-1); cout<<p%2<<" ";
// }
//}
void Confere(){
int kd,i,j, k, l, m, x;
kd=1; for (i=1; i<=dim; i++) kd *=2; kd--;
//Cria matriz de paridade
for (i=1; i<=dim; i++){
l = P[i];
for (j=r; j>0; j--){
MP[i][j] = l % 2; l = l/2;
}
}
cout<<"Matriz de paridade:"<<endl;
for (i=1; i<=dim; i++){
for (j=1; j<=r; j++) cout<<MP[i][j]<<" "; cout<<endl;
}
//Checa a matriz de paridade
for (i=1; i<dim; i++) for (j=i+1; j<=dim; j++){
for (k=1; k<=r; k++) MP[dim+1][k] = (MP[i][k]+MP[j][k]) % 2;
for (m=1; m<=dim; m++) if (m !=i && m != j){
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
if (l <= 1) cout<<"Problema: linhas "<<i<<" e "<<j<<" diferem "<<l<<" de linha "<<m<<endl;
}
}
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
for (k=1; k<=r; k++) MP[dim+1][k] = (MP[i][k]+MP[j][k]+MP[x][k])% 2;
for (m=1; m<=dim; m++) if (m !=i && m != j && m != x){
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
if (l == 0) cout<<"Problema: linhas "<<i<<" "<<j<<" e "<<x<<" = linha "<<m<<endl;
}
}
cin.get();
//Cria código para dim<=15
if (dim <=15){
for (i=0; i<=kd; i++){
l = i;
for(j=dim; j>0; j--){ COD[i+1][j] = l%2; l = l/2; }
for (j=dim+1; j<=(dim+r); j++){
l = 0; for (k=1; k<=dim; k++) l = l+COD[i+1][k]*MP[k][j-dim];
COD[i+1][j] = l%2;
}
}
cout<<"Codigo:"<<endl;
for (i=1; i<=kd+1; i++){
for (j=1; j<=dim+r; j++) cout<<COD[i][j]<<" "; cout<<endl;
}
for (i=1; i<=kd; i++) for (j=i+1; j<=kd+1; j++){
l = 0; for (k=1; k<=dim+r; k++) if (COD[i][k] != COD[j][k]) l++;
if (l < d) {cout<<"Nao confere para i ="<<i<<" j = "<<j<<" distancia = "<<l<<endl; cin.get(); }
}
}
}
void Gera(int t){
int i, j, k, l, x, ntla;
//if (nc > 12) cout<<nc<<" "<<P[nc]<<endl;
if (cont % 10000 == 0) { for (i=1; i<=nc; i++) cout<<P[i]<<" "; cout<<endl;}
for (i=t; i<=tc; i++){
k = 1;
for (j=1; j<=nc; j++) if (Dist(C[i], P[j]) < d-1) k = 0;
if (k){
if (H[C[i]] == 0){
ntla = ntl; cont++;
InsereTL(C[i], 0, ntla);
//for (j=0; j<=ntl; j++) cout<<TL[j]<<"/"<<TTL[j]<<" "; cout<<endl;
//for (j=0; j<=ntla; j++) if (TH[TL[j]] < d-2){
// TL[++ntl] = TL[j]^C[i]; TTL[ntl] = TTL[j]+1;
//}
//cout<<" ntl depois = "<<ntl<<endl;
//for (j=0; j<=ntl; j++) cout<<TL[j]<<"/"<<TTL[j]<<" "; cout<<endl;
P[++nc] = C[i];
if (nc == dim){
//if (LI()){
te++; cout<<"n = "<<dim+r<<" r = "<<r<<" d = "<<d<<" :";
for (j= 1; j<=dim; j++) cout<<P[j]<<" ";
cout<<endl;
Confere();
cin.get();
//}
}
else Gera(i+1);
nc--; RetiraTL(C[i], 0, ntla, ntl); ntl = ntla;
}
}
}
}
int main(){
r=6; dim = 2; d=5;
r=6; dim = 3; d=5; //Não tem
r=7; dim = 4; d=5;
r=7; dim = 5; d=5; //Não tem
r=8; dim = 9; d=5;
r=8; dim = 10; d=5; //Não tem
r=9; dim = 13; d=5;
r=9; dim = 14; d=5; //Não tem
r=10; dim = 20; d=5;
r=10; dim = 21; d=5; //Parece que não
r=11; dim = 29; d=5;
r=11; dim = 30; d=5; //Parece que não
r=9; dim = 2; d=7;
r=9; dim = 3; d=7; //Não tem
r=10; dim = 5; d=7;
r=10; dim = 6; d=7; //Não tem
r=11; dim = 11; d=7;
r=11; dim = 12; d=7; //Não tem
r=12; dim = 12; d=7;
r=12; dim = 13; d=7; //Não tem
r=13; dim = 12; d=7;
r=13; dim = 13; d=7; //Não tem
r=14; dim = 15; d=7;
r=14; dim = 16; d=7; //Não tem
r=15; dim = 17; d=7; //Código estranho...
//Código: n = 32 r = 15 d = 7 :511 1551 2611 3157 3688 4697 5219 5684 6189 6726 7194 7809 8805 17045 17683 24994 26076
r=15; dim = 18; d=7; //Parece não ter
r=15; dim = 7; d=9; //Não tem
r=15; dim = 8; d=9;
r=19; dim = 8; d=11;
p2r = 1; j=1; while (j <= r){p2r = 2*p2r; j++;}; p2r--;
cout<<p2r<<endl;
//Inicializa - Coloca números com até d-2 bits 1 em TTL
for (i=0; i<=p2r; i++){ H[i]=0; TH[i] = 0; }
TL[0] = 0; THA[0] = 0; ntl = 0;
for (i=1; i<=p2r; i++) {
j = Dist(0,i);
if (j <= d-2) {TL[++ntl] = i; THA[ntl] = 0; H[i] = 1; TH[i] = j;}
}
nvi = 0; p2 = 1; for(j=1; j<=r; j++){p2 *=2; if (j>= d-1) VI[++nvi] = p2-1;}
for (tnvi = 1; tnvi<r-d+2; tnvi++){
tc=1; C[1] = VI[tnvi]; cont = 0;
InsereTL(VI[tnvi], 0, ntl);
for (i=1; i<=p2r; i++) if (H[i] == 0 && Dist(VI[tnvi],i) >= d-1) C[++tc] = i;
//cout<<"ntl = "<<ntl<<" tc = "<<tc<<" VI = "<<VI[tnvi]<<endl; cin.get();
//for (i=1; i<=tc; i++) cout<<C[i]<<" "; cin.get();
//for (i=0; i<=ntl; i++) {cout<<TL[i]<<"/"<<THA[i]<<" "; if (i%500 == 0) cin.get(); } cout<<endl; cin.get();
nc=1; P[1] = C[1]; te = 0; Gera(2);
if (te == 0) cout<<"Nao achou MP para d = "<<d<<" r = "<<r<<" dim = "<<dim<<" VI = "<<VI[tnvi]<<endl;
}
return 0;
}
Ly8gRXN0ZSBwcm9ncmFtYSB0ZXN0YSBzZSBleGlzdGUgdW1hIG1hdHJpeiBkZSBwYXJpZGFkZSBkZSB0YW1hbmhvIGRpbSBwYXJhIGRhZG9zIHIgZSBkCi8vIHBhcmEgYXTDqSByID0gMjQKCiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IFZJWzEwMDBdLCBDWzEwMDAwMDBdLCBQWzEwMDAwXSwgVExbMTY3NzcyMTZdLCBUSEFbMTY3NzcyMTZdLCBIWzE2Nzc3MjE2XSwgVEhbMTY3Nzc3MjE2XSwgQ09EWzExMDAwMDBdWzUwXSwgTVBbMjU2XVsyNTZdLApkLCByLCB0YywgdDEsIHRlLCBuLCBkaW0sIGksIGosIGssIG5jLCB0c2MsIG5wYywgbnRsLCBucGNsaSwgcDJyLCBwMiwgbnZpLCB0bnZpLCBjb250OwoKaW50IERpc3QoaW50IGEsIGludCBiKXsKICAgIGludCBrPTAsIGo7CiAgICBmb3IgKGo9MTsgajw9MzE7IGorKyl7CiAgICAgICAgIGlmIChhJTIgIT0gYiUyKSBrKys7ICBhPWEvMjsgYj1iLzI7CiAgICB9CiAgICByZXR1cm4gazsKfQoKdm9pZCBJbnNlcmVUTChpbnQgcCwgaW50IGtpLCBpbnQga2YpewogICAgaW50IGksIGosIHRoYTsKICAgIC8vY291dDw8ZW5kbDw8Ikluc2VyY29lcyBlbSBUTCBwYXJhICI8PHA8PCIgSFs0MzddL1RIWzQzN10gPSI8PEhbNDM3XTw8Ii8iPDxUSFs0MzddPDxlbmRsOwogICAgZm9yIChpPWtpOyBpIDw9a2Y7IGkrKykgaWYgKFRIW1RMW2ldXTwgZC0yKXsKICAgICAgICBqID0gVExbaV1ecDsgIAogICAgICAgIEhbal0gKz0xOwogICAgICAgIHRoYSA9ICBUSFtUTFtpXV0rMTsKICAgICAgICAvL2NvdXQ8PCJUTFtpXSA9ICI8PFRMW2ldPDwiIHAgPSAiPDxwPDwiICI8PCIgaiA9ICI8PGo8PCIgSFtqXSA9ICI8PEhbal08PGVuZGw7CiAgICAgICAgaWYgKHRoYSA8IFRIW2pdIHx8IFRIW2pdPT0wKXsgSFtqXSArPTE7ICBUTFsrK250bF0gPSBqOyAgVEhBW250bF0gPSBUSFtqXTsgVEhbal0gPSB0aGE7IH0gIC8vY291dDw8VExbbnRsXTw8Ii8iPDxUSEFbbnRsXTw8IiAiO30KICAgIH0KICAgLy9jb3V0IDw8IiBGaW5hbDogSFs0MzddL1RIWzQzN10gPSI8PEhbNDM3XTw8Ii8iPDxUSFs0MzddPDxlbmRsOyAgLy9jaW4uZ2V0KCk7Cn0gCgp2b2lkIFJldGlyYVRMKGludCBwLCBpbnQga2ksIGludCBrbSwgaW50IGtmKXsKICAgIGludCBpLCBqOwogICAgLy9jb3V0PDxlbmRsPDwiRGVsZcOnw7VlcyBlbSBUTCBwYXJhICI8PHA8PCIgSFs0MzddL1RIWzQzN10gPSI8PEhbNDM3XTw8Ii8iPDxUSFs0MzddPDxlbmRsOwogICAgCglmb3IgKGk9a20rMTsgaSA8PWtmOyBpKyspIHsKICAgICAgICBqID0gVExbaV07CgkJSFtqXSAtPSAxOwogICAgICAgIFRIW2pdID0gVEhBW2ldOyAgLy9jb3V0PDxUTFtpXTw8Ii8iPDxUSEFbaV08PCIgIjsKICAgIH0KICAgIGZvciAoaT1raTsgaSA8PWttOyBpKyspICBpZiAoVEhbVExbaV1dPCBkLTIpewogICAgICAgIGogPSBUTFtpXV5wOwoJCUhbal0gLT0gMTsKICAgIH0KICAgIG50bCA9IGttOwogICAgLy9jb3V0IDw8IiBGaW5hbDogSFs0MzddL1RIWzQzN10gPSI8PEhbNDM3XTw8Ii8iPDxUSFs0MzddPDxlbmRsOyAgLy9jaW4uZ2V0KCk7Cn0gCi8vdm9pZCBJbXByaW1lQmluKGludCBwLCBpbnQgdCl7Ci8vICAgIGlmICh0ID4gMCl7Ci8vICAgICAgICBJbXByaW1lQmluKHAvMiwgdC0xKTsgIGNvdXQ8PHAlMjw8IiAiOwovLyAgICB9Ci8vfQp2b2lkIENvbmZlcmUoKXsKICAgIGludCBrZCxpLGosIGssIGwsIG0sIHg7CiAgICBrZD0xOyBmb3IgKGk9MTsgaTw9ZGltOyBpKyspIGtkICo9MjsgIGtkLS07CiAgICAvL0NyaWEgbWF0cml6IGRlIHBhcmlkYWRlCiAgICBmb3IgKGk9MTsgaTw9ZGltOyBpKyspewogICAgICAgIGwgPSBQW2ldOwogICAgICAgIGZvciAoaj1yOyBqPjA7IGotLSl7CiAgICAgICAgICAgIE1QW2ldW2pdID0gbCAlIDI7ICBsID0gbC8yOwoJCX0KICAgIH0KICAgIGNvdXQ8PCJNYXRyaXogZGUgcGFyaWRhZGU6Ijw8ZW5kbDsKICAgIGZvciAoaT0xOyBpPD1kaW07IGkrKyl7CiAgICAgICAgZm9yIChqPTE7IGo8PXI7IGorKykgY291dDw8TVBbaV1bal08PCIgIjsgY291dDw8ZW5kbDsKICAgIH0KCS8vQ2hlY2EgYSBtYXRyaXogZGUgcGFyaWRhZGUKICAgIGZvciAoaT0xOyBpPGRpbTsgaSsrKSBmb3IgKGo9aSsxOyBqPD1kaW07IGorKyl7CiAgICAgICAgZm9yIChrPTE7IGs8PXI7IGsrKykgTVBbZGltKzFdW2tdID0gKE1QW2ldW2tdK01QW2pdW2tdKSAlIDI7CiAgICAgICAgZm9yIChtPTE7IG08PWRpbTsgbSsrKSBpZiAobSAhPWkgJiYgbSAhPSBqKXsKICAgICAgICAgICAgbCA9IDA7IGZvcihrPTE7IGs8PXI7IGsrKykgaWYgKE1QW2RpbSsxXVtrXSAhPSBNUFttXVtrXSkgbCsrOwogICAgICAgICAgICBpZiAobCA8PSAxKSBjb3V0PDwiUHJvYmxlbWE6IGxpbmhhcyAiPDxpPDwiIGUgIjw8ajw8IiBkaWZlcmVtICI8PGw8PCIgZGUgbGluaGEgIjw8bTw8ZW5kbDsKICAgICAgICB9IAogICAgfQogICAgZm9yIChpPTE7IGk8ZGltLTE7IGkrKykgZm9yIChqPWkrMTsgajxkaW07IGorKykgZm9yICh4PWorMTsgeDw9ZGltOyB4KyspewogICAgICAgIGZvciAoaz0xOyBrPD1yOyBrKyspIE1QW2RpbSsxXVtrXSA9IChNUFtpXVtrXStNUFtqXVtrXStNUFt4XVtrXSklIDI7CiAgICAgICAgZm9yIChtPTE7IG08PWRpbTsgbSsrKSBpZiAobSAhPWkgJiYgbSAhPSBqICYmIG0gIT0geCl7CiAgICAgICAgICAgIGwgPSAwOyBmb3Ioaz0xOyBrPD1yOyBrKyspIGlmIChNUFtkaW0rMV1ba10gIT0gTVBbbV1ba10pIGwrKzsKICAgICAgICAgICAgaWYgKGwgPT0gMCkgY291dDw8IlByb2JsZW1hOiBsaW5oYXMgIjw8aTw8IiAiPDxqPDwiIGUgIjw8eDw8IiA9IGxpbmhhICI8PG08PGVuZGw7CiAgICAgICAgfSAKICAgIH0KICAgIGNpbi5nZXQoKTsKICAgIC8vQ3JpYSBjw7NkaWdvIHBhcmEgZGltPD0xNQogICAgaWYgKGRpbSA8PTE1KXsKICAgICAgICBmb3IgKGk9MDsgaTw9a2Q7IGkrKyl7CiAgICAgICAgICAgIGwgPSBpOwogICAgICAgICAgICBmb3Ioaj1kaW07IGo+MDsgai0tKXsgQ09EW2krMV1bal0gPSBsJTI7IGwgPSBsLzI7IH0KICAgICAgICAgICAgZm9yIChqPWRpbSsxOyBqPD0oZGltK3IpOyBqKyspewogICAgICAgICAgICAgICAgbCA9IDA7ICBmb3IgKGs9MTsgazw9ZGltOyBrKyspIGwgPSBsK0NPRFtpKzFdW2tdKk1QW2tdW2otZGltXTsgCiAgICAgICAgICAgICAgICBDT0RbaSsxXVtqXSA9IGwlMjsKCQkgICAgfQoJICAgIH0gICAKICAgICAgICBjb3V0PDwiQ29kaWdvOiI8PGVuZGw7CiAgICAgICAgZm9yIChpPTE7IGk8PWtkKzE7IGkrKyl7CiAgICAgICAgICAgIGZvciAoaj0xOyBqPD1kaW0rcjsgaisrKSBjb3V0PDxDT0RbaV1bal08PCIgIjsgY291dDw8ZW5kbDsKICAgICAgICB9CiAgICAgICAgZm9yIChpPTE7IGk8PWtkOyBpKyspIGZvciAoaj1pKzE7IGo8PWtkKzE7IGorKyl7CiAgICAgICAgICAgIGwgPSAwOyAgZm9yIChrPTE7IGs8PWRpbStyOyBrKyspIGlmIChDT0RbaV1ba10gIT0gQ09EW2pdW2tdKSBsKys7CiAgICAgICAgICAgIGlmIChsIDwgZCkge2NvdXQ8PCJOYW8gY29uZmVyZSBwYXJhIGkgPSI8PGk8PCIgaiA9ICI8PGo8PCIgZGlzdGFuY2lhID0gIjw8bDw8ZW5kbDsgY2luLmdldCgpOyB9CiAgICB9ICAgIAogICAgfQp9Cgp2b2lkIEdlcmEoaW50IHQpewogICAgaW50IGksIGosIGssIGwsIHgsIG50bGE7CiAgICAvL2lmIChuYyA+IDEyKSBjb3V0PDxuYzw8IiAiPDxQW25jXTw8ZW5kbDsKICAgIGlmIChjb250ICUgMTAwMDAgPT0gMCkgeyBmb3IgKGk9MTsgaTw9bmM7IGkrKykgY291dDw8UFtpXTw8IiAiOyAgY291dDw8ZW5kbDt9CiAgICBmb3IgKGk9dDsgaTw9dGM7IGkrKyl7CiAgICAgICAgayA9IDE7CgkgICAgZm9yIChqPTE7IGo8PW5jOyBqKyspIGlmIChEaXN0KENbaV0sIFBbal0pIDwgZC0xKSBrID0gMDsgICAgICAgIAoJICAgIGlmIChrKXsKICAgICAgICAgICAgaWYgKEhbQ1tpXV0gPT0gMCl7CiAgCSAgICAgICAgICAgIG50bGEgPSBudGw7ICBjb250Kys7CiAgCSAgICAgICAgICAgIEluc2VyZVRMKENbaV0sIDAsIG50bGEpOwogIAkgICAgICAgICAgICAvL2ZvciAoaj0wOyBqPD1udGw7IGorKykgY291dDw8VExbal08PCIvIjw8VFRMW2pdPDwiICI7IGNvdXQ8PGVuZGw7CiAgCSAgICAgICAgICAgIC8vZm9yIChqPTA7IGo8PW50bGE7IGorKykgaWYgKFRIW1RMW2pdXSA8IGQtMil7CiAgCSAgICAgICAgICAgIC8vICAgIFRMWysrbnRsXSA9IFRMW2pdXkNbaV07ICBUVExbbnRsXSA9IFRUTFtqXSsxOwogIAkgICAgICAgICAgICAvL30KICAJICAgICAgICAgICAgLy9jb3V0PDwiIG50bCBkZXBvaXMgPSAiPDxudGw8PGVuZGw7CiAgCSAgICAgICAgICAgIC8vZm9yIChqPTA7IGo8PW50bDsgaisrKSBjb3V0PDxUTFtqXTw8Ii8iPDxUVExbal08PCIgIjsgY291dDw8ZW5kbDsKCSAgICAgICAgICAgIFBbKytuY10gPSBDW2ldOwoJCQkgICAgaWYgKG5jID09IGRpbSl7CgkJCSAgICAgICAgLy9pZiAoTEkoKSl7CgkJCSAgICAgICAgICAgdGUrKzsgIGNvdXQ8PCJuID0gIjw8ZGltK3I8PCIgciA9ICI8PHI8PCIgZCA9ICI8PGQ8PCIgOiI7CgkJCSAgICAgICAgICAgZm9yIChqPSAxOyBqPD1kaW07IGorKykgY291dDw8UFtqXTw8IiAiOwoJCQkgICAgICAgICAgIGNvdXQ8PGVuZGw7CgkJCQkJICAgQ29uZmVyZSgpOwoJCQkJCSAgIGNpbi5nZXQoKTsKCQkJICAgICAgICAvL30JCQkKCQkJICAgIH0gCgkgICAgICAgICAgICBlbHNlIEdlcmEoaSsxKTsKCSAgICAgICAgICAgIG5jLS07ICAgIFJldGlyYVRMKENbaV0sIDAsIG50bGEsIG50bCk7ICAgIG50bCA9IG50bGE7CgkJCX0JICAgIAoJICAgIH0KCX0KfQppbnQgbWFpbigpewogICAgcj02OyAgICBkaW0gPSAyOyAgIGQ9NTsKICAgIHI9NjsgICAgZGltID0gMzsgICBkPTU7ICAvL07Do28gdGVtCiAgICByPTc7ICAgIGRpbSA9IDQ7ICAgZD01OwogICAgcj03OyAgICBkaW0gPSA1OyAgIGQ9NTsgIC8vTsOjbyB0ZW0KICAgIHI9ODsgICAgZGltID0gOTsgICBkPTU7CiAgICByPTg7ICAgIGRpbSA9IDEwOyAgZD01OyAgLy9Ow6NvIHRlbQogICAgcj05OyAgICBkaW0gPSAxMzsgIGQ9NTsgICAgIAogICAgcj05OyAgICBkaW0gPSAxNDsgIGQ9NTsgIC8vTsOjbyB0ZW0KCXI9MTA7ICAgZGltID0gMjA7ICBkPTU7IAoJcj0xMDsgICBkaW0gPSAyMTsgIGQ9NTsgIC8vUGFyZWNlIHF1ZSBuw6NvCglyPTExOyAgIGRpbSA9IDI5OyAgZD01OwkgCglyPTExOyAgIGRpbSA9IDMwOyAgZD01OyAgLy9QYXJlY2UgcXVlIG7Do28JCgkKICAgIHI9OTsgICAgZGltID0gMjsgICBkPTc7CiAgICByPTk7ICAgIGRpbSA9IDM7ICAgZD03OwkgLy9Ow6NvIHRlbQogICAgcj0xMDsgICBkaW0gPSA1OyAgIGQ9NzsJICAgIAogICAgcj0xMDsgICBkaW0gPSA2OyAgIGQ9NzsJIC8vTsOjbyB0ZW0gIAogICAgcj0xMTsgICBkaW0gPSAxMTsgIGQ9NzsgICAgCiAgICByPTExOyAgIGRpbSA9IDEyOyAgZD03OyAgLy9Ow6NvIHRlbQogICAgcj0xMjsgICBkaW0gPSAxMjsgIGQ9NzsgICAgCiAgICByPTEyOyAgIGRpbSA9IDEzOyAgZD03OyAgLy9Ow6NvIHRlbSAgICAKICAgIHI9MTM7ICAgZGltID0gMTI7ICBkPTc7ICAgICAgICAKICAgIHI9MTM7ICAgZGltID0gMTM7ICBkPTc7ICAvL07Do28gdGVtCiAgICByPTE0OyAgIGRpbSA9IDE1OyAgZD03OyAgCQogICAgcj0xNDsgICBkaW0gPSAxNjsgIGQ9NzsgIC8vTsOjbyB0ZW0gCQogICAgcj0xNTsgICBkaW0gPSAxNzsgIGQ9NzsJIC8vQ8OzZGlnbyBlc3RyYW5oby4uLgoJLy9Dw7NkaWdvOiAgICBuID0gMzIgciA9IDE1IGQgPSA3IDo1MTEgMTU1MSAyNjExIDMxNTcgMzY4OCA0Njk3IDUyMTkgNTY4NCA2MTg5IDY3MjYgNzE5NCA3ODA5IDg4MDUgMTcwNDUgMTc2ODMgMjQ5OTQgMjYwNzYKICAgIHI9MTU7ICAgZGltID0gMTg7ICBkPTc7CSAvL1BhcmVjZSBuw6NvIHRlcgogICAgCiAgICByPTE1OyAgIGRpbSA9IDc7ICBkPTk7ICAgLy9Ow6NvIHRlbSAKICAgIHI9MTU7ICAgZGltID0gODsgIGQ9OTsKCiAgICByPTE5OyAgIGRpbSA9IDg7ICBkPTExOwoKCQkJCSAgIAogICAgcDJyID0gMTsgaj0xOyAgd2hpbGUgKGogPD0gcil7cDJyID0gMipwMnI7ICBqKys7fTsgcDJyLS07Cgljb3V0PDxwMnI8PGVuZGw7CQoKCS8vSW5pY2lhbGl6YSAtIENvbG9jYSBuw7ptZXJvcyBjb20gYXTDqSBkLTIgYml0cyAxIGVtIFRUTAoJZm9yIChpPTA7IGk8PXAycjsgaSsrKXsgSFtpXT0wOyAgVEhbaV0gPSAwOyB9CglUTFswXSA9IDA7ICBUSEFbMF0gPSAwOyAgbnRsID0gMDsgICAgIAoJZm9yIChpPTE7IGk8PXAycjsgaSsrKSB7CgkgICBqID0gRGlzdCgwLGkpOwoJICAgaWYgKGogPD0gZC0yKSB7VExbKytudGxdID0gaTsgIFRIQVtudGxdID0gMDsgIEhbaV0gPSAxOyAgIFRIW2ldID0gajt9Cgl9CgoJbnZpID0gMDsgcDIgPSAxOyAgIGZvcihqPTE7IGo8PXI7IGorKyl7cDIgKj0yOyAgaWYgKGo+PSBkLTEpIFZJWysrbnZpXSA9IHAyLTE7fQoJZm9yICh0bnZpID0gMTsgdG52aTxyLWQrMjsgdG52aSsrKXsKICAgICAgICB0Yz0xOyAgIENbMV0gPSBWSVt0bnZpXTsgIGNvbnQgPSAwOwogICAgICAgIEluc2VyZVRMKFZJW3RudmldLCAwLCBudGwpOyAgICAKCSAgICBmb3IgKGk9MTsgaTw9cDJyOyBpKyspIGlmIChIW2ldID09IDAgJiYgRGlzdChWSVt0bnZpXSxpKSA+PSBkLTEpIENbKyt0Y10gPSBpOwoJICAgIC8vY291dDw8Im50bCA9ICI8PG50bDw8IiB0YyA9ICI8PHRjPDwiIFZJID0gIjw8VklbdG52aV08PGVuZGw7ICBjaW4uZ2V0KCk7CgkJLy9mb3IgKGk9MTsgaTw9dGM7IGkrKykgY291dDw8Q1tpXTw8IiAiOyAgY2luLmdldCgpOwkKCSAgICAvL2ZvciAoaT0wOyBpPD1udGw7IGkrKykge2NvdXQ8PFRMW2ldPDwiLyI8PFRIQVtpXTw8IiAiOyBpZiAoaSU1MDAgPT0gMCkgY2luLmdldCgpOyB9ICBjb3V0PDxlbmRsOyBjaW4uZ2V0KCk7CQoKICAgICAgICBuYz0xOyAgUFsxXSA9IENbMV07ICB0ZSA9IDA7ICBHZXJhKDIpOwogICAgICAgIGlmICh0ZSA9PSAwKSBjb3V0PDwiTmFvIGFjaG91IE1QIHBhcmEgZCA9ICI8PGQ8PCIgciA9ICI8PHI8PCIgZGltID0gIjw8ZGltPDwiIFZJID0gIjw8VklbdG52aV08PGVuZGw7IAogICAgfQogICAgcmV0dXJuIDA7Cn0KCgo=
Main.java:4: error: illegal character: '#'
#include <iostream>
^
Main.java:4: error: class, interface, or enum expected
#include <iostream>
^
Main.java:6: error: class, interface, or enum expected
int VI[1000], C[1000000], P[10000], TL[16777216], THA[16777216], H[16777216], TH[167777216], COD[1100000][50], MP[256][256],
^
Main.java:9: error: class, interface, or enum expected
int Dist(int a, int b){
^
Main.java:11: error: class, interface, or enum expected
for (j=1; j<=31; j++){
^
Main.java:11: error: class, interface, or enum expected
for (j=1; j<=31; j++){
^
Main.java:11: error: class, interface, or enum expected
for (j=1; j<=31; j++){
^
Main.java:12: error: class, interface, or enum expected
if (a%2 != b%2) k++; a=a/2; b=b/2;
^
Main.java:12: error: class, interface, or enum expected
if (a%2 != b%2) k++; a=a/2; b=b/2;
^
Main.java:13: error: class, interface, or enum expected
}
^
Main.java:15: error: class, interface, or enum expected
}
^
Main.java:20: error: class, interface, or enum expected
for (i=ki; i <=kf; i++) if (TH[TL[i]]< d-2){
^
Main.java:20: error: class, interface, or enum expected
for (i=ki; i <=kf; i++) if (TH[TL[i]]< d-2){
^
Main.java:20: error: class, interface, or enum expected
for (i=ki; i <=kf; i++) if (TH[TL[i]]< d-2){
^
Main.java:22: error: class, interface, or enum expected
H[j] +=1;
^
Main.java:23: error: class, interface, or enum expected
tha = TH[TL[i]]+1;
^
Main.java:25: error: class, interface, or enum expected
if (tha < TH[j] || TH[j]==0){ H[j] +=1; TL[++ntl] = j; THA[ntl] = TH[j]; TH[j] = tha; } //cout<<TL[ntl]<<"/"<<THA[ntl]<<" ";}
^
Main.java:25: error: class, interface, or enum expected
if (tha < TH[j] || TH[j]==0){ H[j] +=1; TL[++ntl] = j; THA[ntl] = TH[j]; TH[j] = tha; } //cout<<TL[ntl]<<"/"<<THA[ntl]<<" ";}
^
Main.java:25: error: class, interface, or enum expected
if (tha < TH[j] || TH[j]==0){ H[j] +=1; TL[++ntl] = j; THA[ntl] = TH[j]; TH[j] = tha; } //cout<<TL[ntl]<<"/"<<THA[ntl]<<" ";}
^
Main.java:25: error: class, interface, or enum expected
if (tha < TH[j] || TH[j]==0){ H[j] +=1; TL[++ntl] = j; THA[ntl] = TH[j]; TH[j] = tha; } //cout<<TL[ntl]<<"/"<<THA[ntl]<<" ";}
^
Main.java:25: error: class, interface, or enum expected
if (tha < TH[j] || TH[j]==0){ H[j] +=1; TL[++ntl] = j; THA[ntl] = TH[j]; TH[j] = tha; } //cout<<TL[ntl]<<"/"<<THA[ntl]<<" ";}
^
Main.java:34: error: class, interface, or enum expected
for (i=km+1; i <=kf; i++) {
^
Main.java:34: error: class, interface, or enum expected
for (i=km+1; i <=kf; i++) {
^
Main.java:34: error: class, interface, or enum expected
for (i=km+1; i <=kf; i++) {
^
Main.java:36: error: class, interface, or enum expected
H[j] -= 1;
^
Main.java:37: error: class, interface, or enum expected
TH[j] = THA[i]; //cout<<TL[i]<<"/"<<THA[i]<<" ";
^
Main.java:38: error: class, interface, or enum expected
}
^
Main.java:39: error: class, interface, or enum expected
for (i=ki; i <=km; i++) if (TH[TL[i]]< d-2){
^
Main.java:39: error: class, interface, or enum expected
for (i=ki; i <=km; i++) if (TH[TL[i]]< d-2){
^
Main.java:41: error: class, interface, or enum expected
H[j] -= 1;
^
Main.java:42: error: class, interface, or enum expected
}
^
Main.java:45: error: class, interface, or enum expected
}
^
Main.java:53: error: class, interface, or enum expected
kd=1; for (i=1; i<=dim; i++) kd *=2; kd--;
^
Main.java:53: error: class, interface, or enum expected
kd=1; for (i=1; i<=dim; i++) kd *=2; kd--;
^
Main.java:53: error: class, interface, or enum expected
kd=1; for (i=1; i<=dim; i++) kd *=2; kd--;
^
Main.java:53: error: class, interface, or enum expected
kd=1; for (i=1; i<=dim; i++) kd *=2; kd--;
^
Main.java:53: error: class, interface, or enum expected
kd=1; for (i=1; i<=dim; i++) kd *=2; kd--;
^
Main.java:55: error: class, interface, or enum expected
for (i=1; i<=dim; i++){
^
Main.java:55: error: class, interface, or enum expected
for (i=1; i<=dim; i++){
^
Main.java:55: error: class, interface, or enum expected
for (i=1; i<=dim; i++){
^
Main.java:57: error: class, interface, or enum expected
for (j=r; j>0; j--){
^
Main.java:57: error: class, interface, or enum expected
for (j=r; j>0; j--){
^
Main.java:57: error: class, interface, or enum expected
for (j=r; j>0; j--){
^
Main.java:58: error: class, interface, or enum expected
MP[i][j] = l % 2; l = l/2;
^
Main.java:59: error: class, interface, or enum expected
}
^
Main.java:62: error: class, interface, or enum expected
for (i=1; i<=dim; i++){
^
Main.java:62: error: class, interface, or enum expected
for (i=1; i<=dim; i++){
^
Main.java:62: error: class, interface, or enum expected
for (i=1; i<=dim; i++){
^
Main.java:63: error: class, interface, or enum expected
for (j=1; j<=r; j++) cout<<MP[i][j]<<" "; cout<<endl;
^
Main.java:63: error: class, interface, or enum expected
for (j=1; j<=r; j++) cout<<MP[i][j]<<" "; cout<<endl;
^
Main.java:63: error: class, interface, or enum expected
for (j=1; j<=r; j++) cout<<MP[i][j]<<" "; cout<<endl;
^
Main.java:64: error: class, interface, or enum expected
}
^
Main.java:66: error: class, interface, or enum expected
for (i=1; i<dim; i++) for (j=i+1; j<=dim; j++){
^
Main.java:66: error: class, interface, or enum expected
for (i=1; i<dim; i++) for (j=i+1; j<=dim; j++){
^
Main.java:66: error: class, interface, or enum expected
for (i=1; i<dim; i++) for (j=i+1; j<=dim; j++){
^
Main.java:66: error: class, interface, or enum expected
for (i=1; i<dim; i++) for (j=i+1; j<=dim; j++){
^
Main.java:67: error: class, interface, or enum expected
for (k=1; k<=r; k++) MP[dim+1][k] = (MP[i][k]+MP[j][k]) % 2;
^
Main.java:67: error: class, interface, or enum expected
for (k=1; k<=r; k++) MP[dim+1][k] = (MP[i][k]+MP[j][k]) % 2;
^
Main.java:68: error: class, interface, or enum expected
for (m=1; m<=dim; m++) if (m !=i && m != j){
^
Main.java:68: error: class, interface, or enum expected
for (m=1; m<=dim; m++) if (m !=i && m != j){
^
Main.java:68: error: class, interface, or enum expected
for (m=1; m<=dim; m++) if (m !=i && m != j){
^
Main.java:69: error: class, interface, or enum expected
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
^
Main.java:69: error: class, interface, or enum expected
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
^
Main.java:69: error: class, interface, or enum expected
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
^
Main.java:70: error: class, interface, or enum expected
if (l <= 1) cout<<"Problema: linhas "<<i<<" e "<<j<<" diferem "<<l<<" de linha "<<m<<endl;
^
Main.java:71: error: class, interface, or enum expected
}
^
Main.java:73: error: class, interface, or enum expected
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
^
Main.java:73: error: class, interface, or enum expected
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
^
Main.java:73: error: class, interface, or enum expected
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
^
Main.java:73: error: class, interface, or enum expected
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
^
Main.java:73: error: class, interface, or enum expected
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
^
Main.java:73: error: class, interface, or enum expected
for (i=1; i<dim-1; i++) for (j=i+1; j<dim; j++) for (x=j+1; x<=dim; x++){
^
Main.java:74: error: class, interface, or enum expected
for (k=1; k<=r; k++) MP[dim+1][k] = (MP[i][k]+MP[j][k]+MP[x][k])% 2;
^
Main.java:74: error: class, interface, or enum expected
for (k=1; k<=r; k++) MP[dim+1][k] = (MP[i][k]+MP[j][k]+MP[x][k])% 2;
^
Main.java:75: error: class, interface, or enum expected
for (m=1; m<=dim; m++) if (m !=i && m != j && m != x){
^
Main.java:75: error: class, interface, or enum expected
for (m=1; m<=dim; m++) if (m !=i && m != j && m != x){
^
Main.java:75: error: class, interface, or enum expected
for (m=1; m<=dim; m++) if (m !=i && m != j && m != x){
^
Main.java:76: error: class, interface, or enum expected
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
^
Main.java:76: error: class, interface, or enum expected
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
^
Main.java:76: error: class, interface, or enum expected
l = 0; for(k=1; k<=r; k++) if (MP[dim+1][k] != MP[m][k]) l++;
^
Main.java:77: error: class, interface, or enum expected
if (l == 0) cout<<"Problema: linhas "<<i<<" "<<j<<" e "<<x<<" = linha "<<m<<endl;
^
Main.java:78: error: class, interface, or enum expected
}
^
Main.java:82: error: class, interface, or enum expected
if (dim <=15){
^
Main.java:83: error: class, interface, or enum expected
for (i=0; i<=kd; i++){
^
Main.java:83: error: class, interface, or enum expected
for (i=0; i<=kd; i++){
^
Main.java:85: error: class, interface, or enum expected
for(j=dim; j>0; j--){ COD[i+1][j] = l%2; l = l/2; }
^
Main.java:85: error: class, interface, or enum expected
for(j=dim; j>0; j--){ COD[i+1][j] = l%2; l = l/2; }
^
Main.java:85: error: class, interface, or enum expected
for(j=dim; j>0; j--){ COD[i+1][j] = l%2; l = l/2; }
^
Main.java:85: error: class, interface, or enum expected
for(j=dim; j>0; j--){ COD[i+1][j] = l%2; l = l/2; }
^
Main.java:85: error: class, interface, or enum expected
for(j=dim; j>0; j--){ COD[i+1][j] = l%2; l = l/2; }
^
Main.java:86: error: class, interface, or enum expected
for (j=dim+1; j<=(dim+r); j++){
^
Main.java:86: error: class, interface, or enum expected
for (j=dim+1; j<=(dim+r); j++){
^
Main.java:87: error: class, interface, or enum expected
l = 0; for (k=1; k<=dim; k++) l = l+COD[i+1][k]*MP[k][j-dim];
^
Main.java:87: error: class, interface, or enum expected
l = 0; for (k=1; k<=dim; k++) l = l+COD[i+1][k]*MP[k][j-dim];
^
Main.java:87: error: class, interface, or enum expected
l = 0; for (k=1; k<=dim; k++) l = l+COD[i+1][k]*MP[k][j-dim];
^
Main.java:88: error: class, interface, or enum expected
COD[i+1][j] = l%2;
^
Main.java:89: error: class, interface, or enum expected
}
^
Main.java:92: error: class, interface, or enum expected
for (i=1; i<=kd+1; i++){
^
Main.java:92: error: class, interface, or enum expected
for (i=1; i<=kd+1; i++){
^
Main.java:92: error: class, interface, or enum expected
for (i=1; i<=kd+1; i++){
^
100 errors