Submission #17168958
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define MOD (1000000000+7)
#define pb(x) push_back(x)
#define mp(x,y) make_pair(x,y)
#define nl '\n'
#define all(x) x.begin(), x.end()
#define print(vec,l,r) for(int i = l; i <= r; i++) cout << vec[i] <<" "; cout << endl;
#define forf(i,a,b) for(int i = (a); i < (b); i++)
#define forr(i,a,b) for(int i = (a); i > (b); i--)
#define input(vec,N) for(int i = 0; i < (N); i++) cin >> vec[i];
#define debug(x) cerr << #x << " = " << (x) << endl;
// template starts
typedef long long int ll;
#define int ll
// template ends here
void solve(){
// code starts from here
int N;
cin >> N;
vector<pair<int,int>> vec(N);
for(int i = 0; i < N; i++) cin >> vec[i].first >> vec[i].second;
for(int i = 0; i < N; i++){
if(vec[i].first == -1 && vec[i].second == 1){
cout << "No" << endl;
return;
}
if(vec[i].first == 2*N && vec[i].second == -1){
cout << "No" << endl;
return;
}
if(vec[i].first == -1 || vec[i].second == -1) continue;
if(vec[i].first >= vec[i].second){
cout << "No" << endl;
return;
}
}
for(int i = 0; i < N; i++){
for(int j = i+1; j < N; j++){
if(vec[i].first != -1){
if(vec[i].first == vec[j].first || vec[i].first == vec[j].second){
cout<< "No" << endl;
return;
}
}
if(vec[i].second != -1){
if(vec[i].second == vec[j].first || vec[i].second == vec[j].second){
cout<< "No" << endl;
return;
}
}
}
}
for(int i = 0; i < N; i++){
if(vec[i].first == -1 || vec[i].second == -1) continue;
for(int j = 0; j < N; j++){
int t1 = vec[i].second-vec[i].first-1;
int t2 = vec[j].second-vec[j].first-1;
if(vec[j].first == -1 || vec[j].second == -1) continue;
if(t1 == t2) continue;
if(vec[j].second < vec[i].first || vec[j].first > vec[i].second) continue;
cout << "No" << endl;
return;
}
}
for(int i = 0; i < N; i++){
if(vec[i].first != -1 && vec[i].second != -1) continue;
if(vec[i].first == -1 && vec[i].second == -1) continue;
for(int j = 0; j < N; j++){
if(vec[j].first == -1 || vec[j].second == -1) continue;
if(vec[i].first == -1){
if(!(vec[j].first < vec[i].second && vec[i].second < vec[j].second)) continue;
int t = vec[j].second-vec[j].first;
vec[i].first = vec[i].second-t;
break;
}
else if(vec[i].second == -1){
if(!(vec[j].first < vec[i].first && vec[i].first < vec[j].second)) continue;
int t = vec[j].second-vec[j].first;
vec[i].second = vec[i].first+t;
break;
}
}
}
for(int i = 0; i < N; i++){
if(vec[i].first == -1 || vec[i].second == -1) continue;
for(int j = 0; j < N; j++){
int t1 = vec[i].second-vec[i].first-1;
int t2 = vec[j].second-vec[j].first-1;
if(vec[j].first == -1 || vec[j].second == -1) continue;
if(vec[i].first < 0 || vec[i].second > 2*N || vec[j].second < 0 || vec[j].second > 2*N){
cout << "No" << endl;
return;
}
if(t1 == t2) continue;
if(vec[j].second < vec[i].first || vec[j].first > vec[i].second) continue;
cout << "No" << endl;
return;
}
}
for(int i = 0; i < N; i++){
for(int j = i+1; j < N; j++){
if(vec[i].first != -1){
if(vec[i].first == vec[j].first || vec[i].first == vec[j].second){
cout<< "No" << endl;
return;
}
}
if(vec[i].second != -1){
if(vec[i].second == vec[j].first || vec[i].second == vec[j].second){
cout<< "No" << endl;
return;
}
}
}
}
cout << "Yes" << endl;
return;
}
clock_t startTime;
double getCurrentTime() {
return (double)(clock() - startTime) / CLOCKS_PER_SEC;
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
//startTime = clock();
int T;
//cin >> T;
T = 1;
while(T--){
solve();
}
//cout << getCurrentTime() << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Fair Elevator |
| User | Dragonado |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 3964 Byte |
| Status | AC |
| Exec Time | 7 ms |
| Memory | 3664 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, s1.txt, s2.txt, s3.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 7 ms | 3600 KiB |
| 02.txt | AC | 2 ms | 3564 KiB |
| 03.txt | AC | 2 ms | 3616 KiB |
| 04.txt | AC | 3 ms | 3652 KiB |
| 05.txt | AC | 2 ms | 3580 KiB |
| 06.txt | AC | 3 ms | 3612 KiB |
| 07.txt | AC | 3 ms | 3652 KiB |
| 08.txt | AC | 2 ms | 3560 KiB |
| 09.txt | AC | 2 ms | 3512 KiB |
| 10.txt | AC | 2 ms | 3664 KiB |
| 11.txt | AC | 2 ms | 3512 KiB |
| 12.txt | AC | 2 ms | 3588 KiB |
| 13.txt | AC | 3 ms | 3620 KiB |
| 14.txt | AC | 3 ms | 3520 KiB |
| 15.txt | AC | 2 ms | 3572 KiB |
| 16.txt | AC | 2 ms | 3556 KiB |
| 17.txt | AC | 3 ms | 3516 KiB |
| 18.txt | AC | 2 ms | 3652 KiB |
| 19.txt | AC | 3 ms | 3652 KiB |
| 20.txt | AC | 2 ms | 3652 KiB |
| 21.txt | AC | 2 ms | 3548 KiB |
| 22.txt | AC | 3 ms | 3612 KiB |
| 23.txt | AC | 2 ms | 3456 KiB |
| 24.txt | AC | 3 ms | 3552 KiB |
| 25.txt | AC | 2 ms | 3624 KiB |
| 26.txt | AC | 3 ms | 3604 KiB |
| 27.txt | AC | 3 ms | 3560 KiB |
| 28.txt | AC | 6 ms | 3504 KiB |
| 29.txt | AC | 3 ms | 3612 KiB |
| 30.txt | AC | 3 ms | 3620 KiB |
| 31.txt | AC | 4 ms | 3616 KiB |
| 32.txt | AC | 5 ms | 3516 KiB |
| 33.txt | AC | 2 ms | 3512 KiB |
| 34.txt | AC | 2 ms | 3564 KiB |
| 35.txt | AC | 2 ms | 3584 KiB |
| 36.txt | AC | 2 ms | 3620 KiB |
| 37.txt | AC | 4 ms | 3508 KiB |
| 38.txt | AC | 2 ms | 3608 KiB |
| 39.txt | AC | 2 ms | 3508 KiB |
| 40.txt | AC | 3 ms | 3612 KiB |
| 41.txt | AC | 3 ms | 3572 KiB |
| 42.txt | AC | 3 ms | 3496 KiB |
| 43.txt | AC | 4 ms | 3616 KiB |
| s1.txt | AC | 2 ms | 3656 KiB |
| s2.txt | AC | 3 ms | 3600 KiB |
| s3.txt | AC | 2 ms | 3568 KiB |