Submission
Status:
[PPP][TSSS][TSS][xSSSSSS]
Score: 10
User: ShynyC
Problemset: ขั้นบันได
Language: cpp
Time: 2.080 second
Submitted On: 2025-03-27 23:06:35
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n,temp,q,floor1,floor2,odd=0,even=0;
vector<int> rooms,ghost,human;
cin >> n;
for(int i = 0; i < n; i++){
cin >> temp;
rooms.push_back(temp);
}
for(int i = 0 ; i < n-1; i++){
if(abs(rooms[i]-rooms[i+1]) > 1){
for(int j = 1; j < abs(rooms[i+1]-rooms[i]); j++){
if(rooms[i] < rooms[i+1]){
if((j+rooms[i])%2 == 0){
human.push_back(j+rooms[i]);
}else{
ghost.push_back(j+rooms[i]);
}
}else{
if((j+rooms[i+1])%2 == 0){
human.push_back(j+rooms[i+1]);
}else{
ghost.push_back(j+rooms[i+1]);
}
}
}
}
}
//cout << human.size() << ' ' << ghost.size() << "\n";
cin >> q;
for(int i = 0; i < q; i++){
cin >> floor1 >> floor2;
for(int j = 0; j < human.size(); j++){
if(human[j] >= floor1 && human[j] <= floor2){
even++;
}
}
for(int j = 0; j < ghost.size(); j++){
if(ghost[j] >= floor1 && ghost[j] <= floor2){
odd++;
}
}
cout << even << ' ' << odd << "\n";
odd = 0;
even = 0;
}
}