Cod sursa(job #942011)

Utilizator superman_01Avramescu Cristian superman_01 Data 20 aprilie 2013 14:32:53
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<cstdio>
#include<vector>

#define NMAX 100005

FILE *f=fopen("farfurii.in","r");
FILE *g=fopen("farfurii.out","w");

using namespace std;

int n,k,diff;
vector<int> sol;
int ccount;

void Solve ( void )
{

    while ( ccount*(ccount-1) /2 < k)
        ++ccount;
    //numarul de perechi in plus
    diff=ccount*(ccount-1)/2-k;
    for(int i(n) ; i > n-ccount ; --i )
        sol.push_back(i);

}
void Write ( void )
{
    for(int i (1) ;i <= n- ccount ; ++i )
        fprintf(g,"%d ",i);
    fprintf(g,"%d ",sol[diff]);
    int value=sol[diff];
    for(vector<int>::iterator it=sol.begin() ; it != sol.end() ; ++it )
        if( *it != value)
        fprintf(g,"%d ",*it);
}

int main ( void )
{
    fscanf(f,"%d%d",&n,&k);
    Solve();
    Write();
    return 0;
}