Submission #1111698

#TimeUsernameProblemLanguageResultExecution timeMemory
1111698MatkapSails (IOI07_sails)C++14
0 / 100
1071 ms2640 KiB
/* Author:Matkap(prefix_sum) */ #include <bits/stdc++.h> #include <array> using namespace std; #define int long long #define endl "\n" #define ar array #define all(x) x.begin(),x.end() const int INF = 1e17 , MOD = 1e9 + 7; void setIO(string name = "") { if (name.size()) { freopen((name + ".in").c_str(), "r", stdin); freopen((name + ".out").c_str(), "w", stdout); } } int mul(int a,int b,int mod = MOD) { a %= mod; b %= mod; return a * 1LL * b % mod; } int sum(int a,int b,int mod = MOD) { a %= mod; b %= mod; return (a + b + mod) % mod; } int binpow(int base,int power,int mod = MOD) { if(power == 1) return base; if(power == 0) return 1; if(power%2==1) { int a; a = binpow(base,(power - 1)/2); return mul(base, mul(a, a, mod), mod); } else { int a; a = binpow(base,power/2); return mul(a, a, mod); } } int inv(int a,int mod = MOD) { a %= mod; return binpow(a, mod - 2) % mod; } const int mxH = 1e5 + 7; set<ar<int,2>> st; int tree[mxH]; void upd(int l, int r) { for(++l;mxH > l;l++) tree[l]++; for(++r;mxH > r;r++) tree[r]--; } int q(int pos) { return tree[pos]; } void solve() { int n; cin >> n; ar<int,2> a[n]; for(int i = 0;n > i;i++) cin >> a[i][0] >> a[i][1]; sort(a,a + n); int cur_height = 0; for(int i = 0;n > i;i++) { if(cur_height + a[i][1] > a[i][0]) { upd(cur_height, a[i][0]); a[i][1] -= a[i][0] - cur_height; upd(0LL, a[i][1]); cur_height = a[i][1]; } else { upd(cur_height, cur_height + a[i][1]); cur_height += a[i][1]; } } int ans = 0; for(int i = 1;mxH > i;i++) { ans += (q(i) * (q(i) - 1)) / 2; } cout << ans << endl; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int tt; tt=1; //cin >> tt; while(tt--) solve(); }

Compilation message (stderr)

sails.cpp: In function 'void setIO(std::string)':
sails.cpp:21:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |         freopen((name + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sails.cpp:22:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   22 |         freopen((name + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...