이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e6 + 1,MOD = 1e9 + 7;
ll n,l[N],r[N],a,b,ans;
__int128_t A,B,cyc,inf;
vector<pair<ll,ll>> all;
void test(){
cin >> n >> a >> b;
A = a;
B = b;
for(int i = 1;i <= n;i++){
cin >> l[i] >> r[i];
}
if(n == 1){
ll x = a / gcd(a,b + 1),val = r[1] - l[1] + 1;
if(x >= (val + b - 1) / val){
cout << (x % MOD * (b % MOD)) % MOD;
return;
}
cout << val % MOD;
return;
}
cyc = A * B / (gcd(a,b + 1));
inf = r[n];
ll _ = a * b / (gcd(a,b + 1));
for(int i = 1;i <= n;i++){
l[i] %= _;
r[i] %= _;
// cout << l[i] << ' ' << r[i] << '\n';
if(r[i] >= l[i]){
all.push_back({l[i],r[i]});
continue;
}
all.push_back({0,r[i]});
all.push_back({l[i],_ - 1});
}
ll ans = 0;
sort(all.begin(),all.end());
// for(auto [x,y]:all){
// cout << x << ' ' << y << '\n';
// }
// cout << '\n';
for(int i = 0;i < all.size();i++){
ll mx = all[i].second,_l = all[i].first;
for(int j = i + 1;j < all.size();j++){
if(mx >= all[j].first){
i = j;
mx = max(mx,all[j].second);
}else break;
}
// cout << _l << ' ' << mx << ' ' << i << '\n';
ans += (mx - _l + 1) ;
}
cout << ans;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int T = 1;
//cin >> T;
while(T--) test();
}
컴파일 시 표준 에러 (stderr) 메시지
strange_device.cpp: In function 'void test()':
strange_device.cpp:48:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
48 | for(int i = 0;i < all.size();i++){
| ~~^~~~~~~~~~~~
strange_device.cpp:50:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
50 | for(int j = i + 1;j < all.size();j++){
| ~~^~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |