結果
問題 | No.742 にゃんにゃんにゃん 猫の挨拶 |
ユーザー |
![]() |
提出日時 | 2018-10-11 16:42:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 2,500 ms |
コード長 | 1,821 bytes |
コンパイル時間 | 683 ms |
コンパイル使用メモリ | 93,308 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-12 17:37:32 |
合計ジャッジ時間 | 1,390 ms |
ジャッジサーバーID (参考情報) |
judge / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 |
ソースコード
#include<iostream>#include<vector>#include<queue>#include<stack>#include<string>#include<cmath>#include<algorithm>#include<bitset>#include<map>#include<functional>#include<set>#include<numeric>#pragma regionusing namespace std;#define FOR(i,r,n) for(ll i = (ll)(r); i < (ll)(n); i++)#define rep(i,n) FOR(i,0LL,n)#define RFOR(i,r,n) for(ll i=(ll)(n-1);i>=r;i--)#define rrep(i,n) RFOR(i,0LL,n)#define all(x) x.begin(),x.end()#define rall(x) x.rbegin(),x.rend()#define COUNT(a,y,x) upper_bound(all(a), y) - lower_bound(all(a), x)#define UNIQUE(a) sort(all(a)); a.erase(unique(all(a)), a.end())#define SUM(a) accumulate(all(a),0LL)#define scan(x) scanf("%lld",&x)#define print(x) printf("%lld\n",x)#define print2(x) printf("%lld ",x)#define pb push_backtypedef long long int ll;typedef vector<ll> vll;typedef vector<vll> vvll;typedef pair<ll, ll> pll;typedef vector<pll> vpll;typedef vector<string> vs;typedef map<ll, ll> MAP;const ll inf = 2222222222222222222LL;const ll mod = 1000000007LL;ll n = 0, m = 0, ans = 0, cnt = 0, tmp = 0, ma = -inf, mi = inf;string s;bool ok = true, flag = false;ll dx[5] = { 1,-1,0,0,0 }, dy[5] = { 0,0,1,-1,0 };ll ddx[9] = { 1,-1,0,0,1,1,-1,-1,0 }, ddy[9] = { 0,0,1,-1,1,-1,1,-1,0 };#pragma endregion#define MAX 111111struct BinaryIndexed {ll num;vll bit;BinaryIndexed(ll x = MAX) {num = x;bit.resize(x + 1, 0);}ll sum(ll i) {ll ret = 0;while (i > 0) {ret += bit[i];i -= i & -i;}return ret;}void add(ll i, ll x) {if (i == 0) cout << "access 0 index" << endl;while (i <= num) {bit[i] += x;i += i & -i;}}};ll x[MAX];int main(void) {BinaryIndexed b;cin >> n;rep(i, n) scan(x[i]);rrep(i, n) {ans += b.sum(x[i]);b.add(x[i], 1);}cout << ans << endl;return 0;}