Cod sursa(job #1961508)

Utilizator alexuscussAlexandru Popa alexuscuss Data 11 aprilie 2017 10:19:35
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
    FILE *fin, *fout;
    int a, b, x, y, k, i, nrc, nr, max=0, h;
fin = fopen("morse.in", "r");
fout = fopen("morse.out", "w");
fscanf(fin,"%d%d", &a, &b);
for(x=a;x<=b;x++){

y=x;
nrc=0;
for(i=0;i<=32;i++){
    if((y&1)==1)
        nrc=i;
    y=y>>1;

}

y=x;
nr=0;
for(i=nrc;i>=0;i--){
    k=y&1;
    if(k==1)
        nr++;
    y=y>>1;
}

if(nr>max)
    max=nr;
}



for(x=a;x<=b;x++){
y=x;
for(i=0;i<=32;i++){

    if((y&1)==1)
        nrc=i;
        y=y>>1;

}
y=x;
nr=0;

for(i=nrc;i>=0;i--){
    k=y&1;
    if(k==1)
        nr++;
    y=y>>1;
}

y=x;
h=nrc;

if(nr==max){
for(i=nrc;i>=0;i--){
    y=x>>h;
    if((y&1)==0)
        fprintf(fout,".");
    if((y&1)==1)
        fprintf(fout,"-");

    h--;
}
fprintf(fout," ");
}

}

fclose(fin);
fclose(fout);
    return 0;
}