Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
7671 | D班-西瓜 | 古墓棋盘之谜 | C++ | 通过 | 100 | 3 MS | 1032 KB | 598 | 2025-03-20 14:40:13 |
#include <bits/stdc++.h> using namespace std; int main() { int n,m,whiteCount=0; cin >> n >> m; int a[n+1],pos[n+1]; for(int i = 0; i<n; i++) { cin >> a[i]; } for(int i = 0; i<n; i++) { if(a[i]==1) { pos[whiteCount] = i; whiteCount++; } } if(whiteCount<m || m==0) { cout << -1; return 0; } int left,right,min_count=n+1,del_count; for(int i = 0; i<=whiteCount-m; i++) { left = pos[i]; right = pos[i+m-1]; del_count = left+n-right-1; if(del_count < min_count) { min_count = del_count; } } cout << min_count; return 0; }