回家待了幾天,我覺得再繼續頹廢下去也不是個辦法。還是得他媽的振作!振作!
跟以前一樣,按照計劃行事。
每天2題,難度隨意。做不出來絕對不死磕,找標程或者數據弄懂再說。管他媽什么算法,我只管寫代碼。
項目緊的時候做項目,不緊的時候看點代碼或者寫點代碼,啥都行,主要是保持一個感覺。
剩下的時間就練吉他。
今天開始做了第一題,結果悲劇。
我日你媽poj,能不能不要他媽的加數據,為啥子官方數據都過了還是過不了你那的。。
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 50032
int K, N, V;
struct node {
int base, area, sign;
};
struct node arr[MAX_N*2];
int cmp(const void *a, const void *b)
{
return ((struct node *)a)->base - ((struct node *)b)->base;
}
int main()
{
int b, h, w, d, i, a, v;
scanf("%d", &K);
while (K--) {
scanf("%d", &N);
for (i = 0; i < N; i++) {
scanf("%d%d%d%d", &b, &d, &w, &h);
arr[i*2].base = b;
arr[i*2].area = w * h;
arr[i*2].sign = 1;
arr[i*2 + 1].base = b + d;
arr[i*2 + 1].area = w * h;
arr[i*2 + 1].sign = -1;
}
scanf("%d", &V);
qsort(arr, N*2, sizeof(arr[0]), cmp);
a = 0;
for (i = 0; i < N*2; i++) {
v = i ? a * (arr[i].base - arr[i - 1].base) : 0;
if (V <= v) {
printf("%.2lf\n", (double)V / a + arr[i - 1].base);
break;
}
V -= v;
a += arr[i].sign * arr[i].area;
}
if (i == N*2)
printf("OVERFLOW\n");
}
return 0;
}