I与D合奏乐曲。共n个乐章,第i个乐章价值ai,D和I可以在演奏时使乐章的价值变为xi与yi且分别不超过ai,如果能使xi + yi = bi,则听者S将增加愉悦度xi * yi,否则S的愉悦度-1。问一首乐曲能使S的愉悦度最大为何值。
看不懂题目真伤。水题一道。不过要注意特判b[i] == 1的时候。
#include <cstdio>
#include <iostream>
using namespace std ;
int xx[110] = {0} ;
int yy[110] = {0} ;
int Min(int x , int y) {
return (x < y)? x : y ;
}
int main() {
//freopen("in.txt" , "r" , stdin) ;
int n , x = 0 , y = 0 ;
int ans ;
cin >> n ;
for (int i = 1 ; i <= n ; i ++) {
int a , b ;
cin >> a >> b ;
xx[a] ++ ; yy[b] ++ ;
}
for (int i = 0 ; i <= 100 ; i ++) {
if (xx[i]) x ++ ;
if (yy[i]) y ++ ;
}
ans = Min(x , y) ;
cout << ans << endl ;
return 0 ;
}