Pagini recente » Cod sursa (job #1522233) | Cod sursa (job #2427434) | Cod sursa (job #746686) | Cod sursa (job #294839) | Cod sursa (job #1826673)
//Farfurii
#include <fstream>
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
long long N, K, p, i;
int main()
{
fin>>N>>K;
p = 1;
while(p*(p-1)/2 < K) p++; //cautam cel mai mic p astfel incat p*(p-1)/2 > K
for(i = 1 ; i <= N - p ; i++) //afisam cele mai mici numere, cat timp este posibil (mai putem obtine K inversiuni cu cele ramase)
fout<<i<<" ";
K = N + K - p*(p-1)/2;
fout<<K<<" "; //mai intai il afisam pe K ( nou ), care da "diferenta" necesara pentru a obtine K ( vechi ) inversiuni
for(i = N ; i >= N - p + 1 ; i--)
if(i != K)
fout<<i<<" "; //le afisam pe cele ramase
fin.close();
fout.close();
return 0;
}