Codeforces Round #727 (Div. 2)A. Contest Start

设计一个比赛, 一共n个人, 每个人是固定时间间隔后开始比赛, 然后比赛的总长度是k, 求每个人的比赛的时候, 有多少人还没有完成比赛.

这题画画图就明白了, 但是要注意几个corner cases. 比如间隔给的长度小于比赛的长度等.

#include "bits/stdc++.h"

using namespace std;   
int main() { 
    int K;
    cin >> K; 
    while (K--)
    {  
        int64_t N,X,T;
        cin >> N >> X >> T;
        int64_t B = min(N, T/X);
        if (X <= T)
        { 
            if (N < T/X)
            { 
                cout << N*(N - 1) / 2 << endl;
            }
            else
            {
                int64_t p1 =(N - T/X - 1) * (T/X);
                int64_t p2 = (T/X) * (T/X + 1) / int64_t(2.0);
                cout << p1 + p2 << endl;
            }
             
        }
        else
        {
            cout << 0 << endl;
        }
    }
    
    return 0;
}