Cod sursa(job #1717875)

Utilizator AnaRaduAna-Maria Radu AnaRadu Data 15 iunie 2016 23:09:44
Problema Consecutive Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.75 kb
#include <stdio.h>
struct elem{long long val,lg;};
elem rasp[500005];
int main(){
    FILE *fin,*fout;
    fin=fopen("consecutive.in","r");
    fout=fopen("consecutive.out","w");
    long long i,l,n,k,s,t,m,p;
    fscanf(fin,"%lld",&t);
    for(i=1;i<=t;i++){
        fscanf(fin,"%lld",&s);
        k=0;
        m=s<<1;
        for(l=2;l*(l-1)<=m&&l<s;l++){
            p=l*(l-1)/2;
            if(s>p&&(s-p)%l==0){
                k++;
                rasp[k].val=(s-p)/l;
                rasp[k].lg=l;
            }
        }
        n=k;
        fprintf(fout,"%lld\n",n);
        for(k=1;k<=n;k++)
            fprintf(fout,"%lld %lld\n",rasp[k].val,rasp[k].val+rasp[k].lg-1);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}