2 条题解

  • 0
    @ 2025-12-5 21:19:45

    #include <stdio.h>

    int main() { int t; scanf("%d", &t);

    while (t--) {
        long long n, k, x;
        scanf("%lld %lld %lld", &n, &k, &x);
        
        // 最小可能和:1+2+...+k
        long long min_sum = k * (k + 1) / 2;
        
        // 最大可能和:n+(n-1)+...+(n-k+1)
        long long max_sum = k * n - k * (k - 1) / 2;
        
        if (x >= min_sum && x <= max_sum) {
            printf("YES\n");
        } else {
            printf("NO\n");
        }
    }
    
    return 0;
    

    }

    • 0
      @ 2024-12-26 17:11:20

      C :

      #include <stdio.h>
      int main()
      {
          long long t,n,k,x[110]={0},i,j,y,a[110],sum[110];
          scanf("%lld",&t);
          for(i=0;i<t;i++)
          {
          	sum[i]=y=0;
              scanf("%lld%lld%lld",&n,&k,&x[i]);
              for(j=0;j<k;j++)
              {
              	y=y+n-j;
              	sum[i]=sum[i]+j;
      		}   
              a[i]=y;
          } 
          for(i=0;i<t;i++)
          {
          	if(a[i]>=x[i]&&sum[i]+k<=x[i])
               printf("YES");
              else
               printf("NO");
               printf("\n");
      	}   
          return 0;
      }
      

      C++ :

      #include <bits/stdc++.h>
      #define int long long
      using namespace std;
      const int N=1e6+10;
      typedef pair<int,int> PII;
      typedef priority_queue<int , vector<int>, greater<int>> minqueue;  //从小到大 queue
      typedef priority_queue<int, vector<int>, less<int>> maxqueue;      //从大到小 queue
      
      int gcd(int a, int b){  //最大公因数 
          return b ? gcd(b, a % b) : a;
      }
      
      int lcm(int a, int b){ //最小公倍数 
          return a * b / __gcd(a, b);
      }
      
      int qmi(int base, int power, int p)  //快速幂求余 
      {
      	int result = 1;   
      	while (power > 0)           
      	{
      		if (power & 1)         							
      			result = result * base % p;   
      		base = base * base % p ;       						
      		power >>= 1;         						
      	}
      	return result % p;       
      }
      
      void solve()
      {
      	int n,k,x;
      	cin>>n>>k>>x;
      	int cnt1=0,cnt2=0;
      	for(int i=1;i<=k;i++) cnt1+=i;
      	for(int j=n;j>n-k;j--) cnt2+=j;
      	if(cnt1<=x&&cnt2>=x) cout<<"YES"<<'\n';
      	else cout<<"NO"<<'\n';
      }
      
      signed main()
      {
      	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
      	int t;
      	t=1;
      	cin>>t; 
      	while(t--)     
      	{
      		solve();
      	}
      	return 0;
      }
      
      • 1

      信息

      ID
      712
      时间
      1000ms
      内存
      128MiB
      难度
      10
      标签
      提交数
      6
      已通过
      3
      上传者