結果
問題 | No.742 にゃんにゃんにゃん 猫の挨拶 |
ユーザー |
![]() |
提出日時 | 2018-10-05 21:57:58 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 11 ms / 2,500 ms |
コード長 | 1,411 bytes |
コンパイル時間 | 1,683 ms |
コンパイル使用メモリ | 168,472 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-12 13:56:28 |
合計ジャッジ時間 | 2,332 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 |
ソースコード
#include<bits/stdc++.h>using namespace std;#define ll long long#define FOR(i,n,m) for(int i=(n);i<(m);i++)#define REP(i,n) FOR(i,0,n)#define REPR(i,n) for(int i=(n);i>=0;i--)#define all(vec) vec.begin(),vec.end()using vi=vector<int>;using vvi=vector<vi>;using vl=vector<ll>;using vvl=vector<vl>;using P=pair<int,int>;using PP=pair<int,P>;using Pl=pair<ll,ll>;using PPl=pair<ll,Pl>;using vs=vector<string>;#define fi first#define se second#define pb push_backtemplate<class T>bool chmax(T &a,const T &b){if(a<b){a=b;return true;}return false;}template<class T>bool chmin(T &a,const T &b){if(a>b){a=b;return true;}return false;}const ll MOD=1000000007LL;const int INF=1<<30;const ll LINF=1LL<<60;template<class T>struct BIT{//0-indexedvector<T> data;BIT(int size){data.assign(size+1,0);}T sum(int k){//[0,k]T res=0;for(++k;k>0;k-=k&-k){res+=data[k];}return res;}T sum(int l,int r){//[l,r]return sum(r)-sum(l-1);}void add(int k,T x){for(++k;k<data.size();k+=k&-k){data[k]+=x;}}};int main(){int n;cin>>n;vi vec(n);REP(i,n){cin>>vec[i];}BIT<int> tr(n+1);int ans=0;REPR(i,n-1){ans+=tr.sum(vec[i]);tr.add(vec[i],1);}cout<<ans<<endl;return 0;}