這是一個來自SPOJ
的問題WA in IITKWPCO SPOJ
小費魯達喜歡玩很多。如你所知,他只是玩數字。所以他給了n個數字。現在嘗試將數字分組爲不相交的集合,每個集合包含兩個數字。如果集合中的小數字恰好是大數的一半,他可以形成包含兩個數字的集合。
給定n個數字,找出他可以形成多少個最大數量的集合?
輸入
T:測試用例的數量。 (1 < = T < = 100)。
對於每個測試例:
第一行包含n個:(1 < = N < = 100)
然後下一行包含n個單個空間分隔。每個數字的範圍將介於1和10^6之間。
輸出
對於每個測試用例,輸出可以形成的最大數量的集合。
例
輸入:
輸出:
我的代碼::
#include <stdio.h>
#include <math.h>
#include <string.h>
int main()
{
int t;
scanf("%d", &t);
while (t--) {
int n, i, j;
scanf("%d", &n);
long int arr[n], mini, maxi;
char str[105];
for (i = 0;i < n;i++) {
str[i] = '0';
scanf("%ld", &arr[i]);
}
for (i = 0;i < n;i++) {
for (j = 0;j < n;j++) {
mini = fmin(arr[i], arr[j]);
maxi = fmax(arr[i], arr[j]);
if ((maxi == 2 * mini) && (str[i] == '0' && str[j] == '0')) {
str[i] = str[j] = '1';
break;
}
}
}
long int cnt = 0;
for (i = 0;i < n;i++) {
if (str[i] == '1') {
cnt++;
}
}
printf("%ld\n", cnt/2);
}
return 0;
}
有人可以PLZ指出我要去的地方錯誤或任何角落的測試情況下我是失蹤??
你想做什麼,發生了什麼,你期望發生什麼? –
我得到了正確的輸出爲所有的測試用例,我試過但仍然在SPOJ它評估爲錯誤ANSWER.I創建一個字符數組並初始化爲全'0',如果較低數字是更高數字的一半,然後我初始化該位置'1'。此後,我將在「str」中得到1的偶數。因此,我只是將計數減2,以獲得有問題的對的數量。 – rock321987