Mai intai trebuie sa te autentifici.
Cod sursa(job #516538)
Utilizator | Data | 24 decembrie 2010 17:50:58 | |
---|---|---|---|
Problema | Farfurii | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.92 kb |
#include <iostream>
#include <fstream>
using namespace std;
const char iname[] = "farfurii.in";
const char oname[] = "farfurii.out";
using namespace std;
ifstream fin(iname);
ofstream fout(oname);
int ap[100005], n, k, i;
int main()
{
fin >> n >> k;
for(i = 1; i <= n; i ++)
{
if((n - i) * (n - i - 1) / 2 >= k && (n - i + 1) * (n - i) / 2 >= k)
{
fout << i << " ";
ap[i] = 1;
}
else
{
if(k < (n - i) * (n - i + 1) / 2)
{
fout << i + (n - i) * (n - i + 1) / 2 - k << " ";
ap[i + (n - i) * (n - i + 1) / 2 - k] = 1;
break;
}
else
if(k > (n - i) * (n - i + 1) / 2)
{
fout << i + k - (n - i) * (n - i + 1) / 2 << " ";
ap[i + (n - i) * (n - i + 1) / 2 - k] = 1;
break;
}
else
{
fout << n << " ";
ap[n] = 1;
break;
}
}
}
for(i = n; i >= 1; i --)
if(ap[i] == 0)
fout << i << " ";
return 0;
}