第一行输入一个整数
,表示测试用例组数。
每组测试用例格式如下:
第一行输入两个整数
;
第二行输入
个整数
.
对于每组测试用例,输出一行一个整数,表示
的值。
3 3 2 2 0 1 4 1 0 0 0 0 5 3 3 0 0 4 0
1 0 3
对于第一组数据:
,第
项
,
;第
项为
,
,赠出
枚,
;第
项无操作;因此
。
对于第三组数据:
,第
项
,
;第
项各赠出
枚,
;第
项
,
;第
项再赠出
枚,
;因此
。
#include <iostream> #include <vector> using namespace std; int main() { int T; cin >> T; while (T --) { int n,k; cin >> n >> k; vector<int> v(n); int S = 0,cnt = 0; for (int &num : v) { cin >> num; if (num >= k) { S += num; } else if (num == 0 && S >= 1) { S--; cnt ++; } } cout << cnt << endl; } }
#include <iostream> #include <vector> using namespace std; void solve() { int n, k; cin >> n >> k; vector<int> a(n); for (int i = 0; i < n; ++i) { cin >> a[i]; } int S = 0, cnt = 0; for (int num : a) { if (num >= k) { S += num; } else if (num == 0 && S >= 1) { S -= 1; cnt += 1; } } cout << cnt << endl; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while (T--) { solve(); } return 0; }
#include <stdio.h> int main() { int T=0; int i=0; scanf("%d",&T); int S=0,cnt=0; for(i=0;i<T;i++) { int n=0; int k=0; scanf("%d %d",&n,&k); int arr[50]={0}; int j=0; for(j=0;j<n;j++) { scanf("%d",&arr[j]); if(arr[j]>=k) { S=S+arr[j]; } if(arr[j]==0&&S>=1) { S=S-1; cnt=cnt+1; } } printf("%d\n",cnt); cnt=0;//置0 S=0; } return 0; }
package main import ( "fmt" ) func main() { var T int fmt.Scan(&T) for i := 0; i < T; i++ { var n, k int fmt.Scan(&n, &k) arr := make([]int, n) for j := 0; j < n; j++ { fmt.Scan(&arr[j]) } S, cnt := 0, 0 for p := 0; p < n; p++ { if arr[p] >= k { S += arr[p] } else if arr[p] == 0 && S >= 1 { S -= 1 cnt += 1 } } fmt.Println(cnt) } }