POJ_1083

Reference https://blog.csdn.net/lyy289065406/article/details/6642591

Corridor room number using the split, each "sub-corridor" are set to a counter that, every time +1, the largest number of X10 is the answer

#include<iostream>
using namespace std;
#define MAX_ROOM 400
#define TIME_UNIT 10
int ToOdd(int n){
    return n%2==0?n-1:n;
}
int main(){
    int n,nRoad;
    int From,To;
    int *FromId,*ToId;
    int MaxUseCount;
    int a,b;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>nRoad;
        int UseCount[MAX_ROOM] = {0};
        MaxUseCount = 0; 
        FromId = new int[nRoad];
        ToId = new int[nRoad];
        
        for(int j=0;j<nRoad;j++){
            cin>>From>>To;
            
            FromId[j] = From<=To?From:To;
            ToId[j] = To>From?To:From;
            
            FromId[j] = ToOdd(FromId[j]);
            ToId[j] = ToOdd(ToId[j]);
            for(int k=FromId[j];k<=ToId[j];k+=2){
                UseCount[k]++;
                if(MaxUseCount<UseCount[k]){
                    MaxUseCount = UseCount[k];
                }
            }
        }
        cout<<MaxUseCount*10<<endl;
        delete FromId;
        delete ToId;
    } 
    
    return 0;
}

 

Guess you like

Origin www.cnblogs.com/stevenzrx/p/11780047.html