結果
| 問題 |
No.2560 A_1 < A_2 < ... < A_N
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-12-07 19:37:53 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,250 bytes |
| コンパイル時間 | 3,885 ms |
| コンパイル使用メモリ | 230,692 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-09-27 02:18:41 |
| 合計ジャッジ時間 | 5,549 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 5 WA * 10 |
ソースコード
#include <bits/stdc++.h>
#if __has_include(<atcoder/all>)
#include <atcoder/all>
using namespace atcoder;
#endif
using namespace std;
using ll = long long;
int main()
{
ll t;
cin >> t;
vector<ll> a(0);
for(int i=1;i<100000;i++){
a.push_back(i*(i+1)/2);
}
for(int i=0;i<t;i++){
ll n,x;
cin >> n >> x;
if(x<a[n-1]){
cout << -1 << endl;
continue;
}
if(x==a[n-1]){
for(int j=0;j<n;j++) cout << j+1 << " ";
cout << endl;
continue;
}
//aとxについて二分探索
ll l=0,r=n-1;
while(r-l>1){
ll mid=(l+r)/2;
if(a[mid]<x) l=mid;
else r=mid;
}
//cout << l << " " << r << endl;
for(int j=0;j<r;j++){
cout << j+1 << " ";
}
cout << x-a[r-1] << endl;
}
}
// vector<ll> a();
// for(int i=0;i<n;i++){}
//vector<vector<ll>> 変数名(n, vector<ll>(m, 0));
// for(int i=0;i<n;i++){
// for(int j=0;j<m;j++){
// }
// }
//reverse(a.begin(),a.end());
// int 関数名(ll x, ll y) {}
// sort(a.begin(), a.end(), greater<ll>());
// do{
// }while(next_permutation(a.begin(),a.end()));
// cout << fixed << setprecision(15) << ans << endl;
// deque<型> 変数名;
// d.push_back(value) d.push_front(value)
// d.front() d.back()d.at(i)
// d.pop_back() d.pop_front()
// d.size() d.empty()
// for(ll bit=0;bit<(1<<n);bit++){
// for(ll i=0;i<n;i++){
// if(bit&(1<<i)){
// }
// }
// }
// ll c=0;
// std::reverse(s.begin(), s.end());
// for(int i=0;i<s.size();i++){
// int x;
// if(s[i]=='0') x=0;
// if(s[i]=='1') x=1;
// if(s[i]=='2') x=2;
// if(s[i]=='3') x=3;
// if(s[i]=='4') x=4;
// if(s[i]=='5') x=5;
// if(s[i]=='6') x=6;
// if(s[i]=='7') x=7;
// if(s[i]=='8') x=8;
// if(s[i]=='9') x=9;
// int y=1;
// for(int j=0;j<i;j++) y*=10;
// c+=x*y;
// }