Cod sursa(job #1074026)
| Utilizator | Data | 7 ianuarie 2014 00:45:35 | |
|---|---|---|---|
| Problema | Farfurii | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream cin("farfurii.in");
ofstream cout("farfurii.out");
const int n_max=100001;
int n, k, x, i, r, j, v[n_max], y;
bool viz[n_max];
int main()
{
cin>>n>>k;
x=1;
for(i=1; i<=n; i++)
{
r=(n-i)*(n-i-1)/2;
j=0;
y=0;
while(r+j-y<k || viz[x+j])
{
if(viz[x+j]) y++;
j++;
}
v[i]=x+j;
viz[v[i]]=1;
k-=j-y;
while(viz[x]) x++;
}
for(i=1; i<=n; i++) cout<<v[i]<<" ";
return 0;
}
