【碎碎念】哎呀,今天下午电脑突然坏了,以为需要耽误几天,但是谁知到电脑店又好了,虽然颠沛流离,但是也是happy ending。
突然有并行作业,今天就先复习一下昨天的。
复习回顾
Tokitsukaze and All Zero Sequence
#include<stdio.h>
int main(){
int t;
scanf("%d",&t) ;
for(int i =0; i<t; i++) {
int n;
int flag=0;
int ch;
int a[101]={0};
scanf("%d",&n) ;
for(int j=0; j<n; j++){
scanf("%d",&ch);
a[ch]++;
if(a[ch]>1)
flag = 1;
}
if(a[0]>0){
printf("%d\n",n-a[0]);
}else{
if(flag==0)
printf("%d\n",n+1);
if(flag==1)
printf("%d\n",n);
}
}
}
Aggressive cows
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstdlib>
using namespace std;
int a[100], n, c;
bool fun(int m) {
int cnt = 1, cur = 0, next = 1;
while (next < n) {
next++;
if (a[next] - a[cur] >= m) {
cnt++;
cur = next;
}
}
if (cnt >= c) return true;
else return false;
}
int main() {
scanf("%d%d", &n, &c);
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
int left = a[0], right = a[n - 1];
int ans = 0;
sort(a, a + n);
while (left < right) {
int mid = ((left + right) + 1) / 2;
if (fun(mid)) {
ans = mid;
left = mid + 1;
} else {
right = mid - 1;
}
}
printf("%d", ans);
return 0;
}