Submission #3957585
Source Code Expand
#include <iostream> #include <vector> #include <string> #include <cmath> #include <algorithm> #include <utility> #include <queue> #include <set> #include <map> #include <deque> #include <iomanip> #include <cstdio> #include <stack> using namespace std; typedef long long ll; typedef pair<int,int> PII; typedef vector<int> VI; typedef vector<VI> VVI; #define MP make_pair #define PB push_back #define inf 1000000007 #define mod 1000000007 #define rep(i,n) for(ll i=0;i<(ll)(n);++i) #define MOD 1000000007 long long mod_pow(long long a,long long b) { a %= MOD; long long res = 1; while(b){ if(b & 1){ res = res * a % MOD; } a = a * a % MOD; b >>= 1; } return res; } int main(){ ll n; cin >> n; vector<pair<ll,ll> > p; vector<ll>h(n),w(n); rep(i,n){ ll a,b; cin >> a >> b; p.PB(MP(b,a)); } sort(p.begin(),p.end()); rep(i,n){ h[i] = p[i].first; w[i] = p[i].second; } ll ans = 0; vector<ll> s(n+1); vector<ll> ss(n+1); for(ll i=n-2;i>=0;i--){ ll k = mod_pow(n+1-i,mod-2); k = (k*mod_pow(n-i,mod-2))%mod; ss[i] += h[i]*k%mod; ss[i] %= mod; ss[i] += ss[i+1]; ss[i] %= mod; } for(ll i=n-2;i>=0;i--){ ll k = mod_pow(n+1-i,mod-2); k = (k*mod_pow(n-i,mod-2))%mod; s[i] += k%mod; s[i] %= mod; s[i] +=s[i+1]; s[i] %= mod; } rep(i,n){ ans += (2*w[i]*ss[i+1])%mod; ans %= mod; ans += (mod -(2*(h[i]*w[i]%mod)*s[i+1])%mod); ans %= mod; } ll tmp = 1; rep(i,n){ tmp *=(i+1); tmp %= mod; } cout << (ans*tmp)%mod << endl; // ll test = 0; // rep(i,n){ // for(ll j=i+1;j<n;j++){ // test += 2*((h[j]-h[i])*w[i]*tmp)/((n+1-j)*(n-j)); // cerr << i << " " << j << " " << test << endl; // } // } // cerr << test << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - 天下一コップ |
User | mtsd |
Language | C++14 (GCC 5.4.1) |
Score | 140 |
Code Size | 2134 Byte |
Status | AC |
Exec Time | 154 ms |
Memory | 4976 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 15 / 15 | 55 / 55 | 70 / 70 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt |
Subtask2 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt |
Subtask3 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt, subtask3_08.txt, subtask3_09.txt, subtask3_10.txt, subtask3_11.txt, subtask3_12.txt, subtask3_13.txt, subtask3_14.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
subtask1_01.txt | AC | 1 ms | 256 KB |
subtask1_02.txt | AC | 1 ms | 256 KB |
subtask1_03.txt | AC | 1 ms | 256 KB |
subtask1_04.txt | AC | 1 ms | 256 KB |
subtask1_05.txt | AC | 1 ms | 256 KB |
subtask1_06.txt | AC | 1 ms | 256 KB |
subtask1_07.txt | AC | 1 ms | 256 KB |
subtask1_08.txt | AC | 1 ms | 256 KB |
subtask1_09.txt | AC | 1 ms | 256 KB |
subtask1_10.txt | AC | 1 ms | 256 KB |
subtask1_11.txt | AC | 1 ms | 256 KB |
subtask1_12.txt | AC | 1 ms | 256 KB |
subtask1_13.txt | AC | 1 ms | 256 KB |
subtask1_14.txt | AC | 1 ms | 256 KB |
subtask2_01.txt | AC | 3 ms | 384 KB |
subtask2_02.txt | AC | 4 ms | 384 KB |
subtask2_03.txt | AC | 4 ms | 384 KB |
subtask2_04.txt | AC | 4 ms | 384 KB |
subtask2_05.txt | AC | 4 ms | 384 KB |
subtask2_06.txt | AC | 4 ms | 384 KB |
subtask2_07.txt | AC | 4 ms | 384 KB |
subtask2_08.txt | AC | 4 ms | 384 KB |
subtask2_09.txt | AC | 4 ms | 384 KB |
subtask2_10.txt | AC | 4 ms | 384 KB |
subtask2_11.txt | AC | 4 ms | 384 KB |
subtask2_12.txt | AC | 4 ms | 384 KB |
subtask2_13.txt | AC | 4 ms | 384 KB |
subtask2_14.txt | AC | 4 ms | 384 KB |
subtask3_01.txt | AC | 100 ms | 4976 KB |
subtask3_02.txt | AC | 154 ms | 4976 KB |
subtask3_03.txt | AC | 151 ms | 4848 KB |
subtask3_04.txt | AC | 143 ms | 4720 KB |
subtask3_05.txt | AC | 143 ms | 4592 KB |
subtask3_06.txt | AC | 140 ms | 4592 KB |
subtask3_07.txt | AC | 150 ms | 4848 KB |
subtask3_08.txt | AC | 140 ms | 4592 KB |
subtask3_09.txt | AC | 142 ms | 4592 KB |
subtask3_10.txt | AC | 152 ms | 4976 KB |
subtask3_11.txt | AC | 144 ms | 4592 KB |
subtask3_12.txt | AC | 150 ms | 4848 KB |
subtask3_13.txt | AC | 147 ms | 4720 KB |
subtask3_14.txt | AC | 154 ms | 4976 KB |