SRM481 Div2 Easy(250) CircleMarket

CircleMarket

#include <vector>

using namespace std;

//  a=b*x+yが成り立つ最小の非負整数yを返す
int rem( int a, int b ) { return (a%b+b)%b; }

class CircleMarket{public:
int makePurchases( vector <int> openTime, vector <int> closeTime, int travelTime )
{
    int n = (int)openTime.size();
    int c = 0;

    for ( int i=0; i<n; i++ )
        if ( openTime[i] + rem( i*travelTime-openTime[i], n*travelTime )
             <= closeTime[i] )
            c++;

    return c;
}};