2020 CCPC-Wannafly Winter Camp Day3 Div.1&2(A 黑色氣球)(解方程)
時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
小D面前有 個黑色的氣球。
假設第 個黑色氣球的高度是一個正整數 ,現在小D知道了任意兩個不同氣球的高度之和,你能幫小D還原出每個黑色氣球的具體高度嘛?
輸入描述:
第一行一個整數
接下來 行,每行 個整數,其中第 行第 個整數表示第 個氣球和第 個氣球的高度之和。(當 時這個數爲 )。
,輸入的每個數不超過 。數據保證答案唯一。
輸出描述:
一行 個整數,表示答案。
保證答案唯一。
示例1
輸入
5
0 3 4 5 6
3 0 5 6 7
4 5 0 7 8
5 6 7 0 9
6 7 8 9 0
輸出
1 2 3 4 5
題解
解方程即可,不過有一個巧妙的解法:
先利用前三條方程解出第一項的值,再利用與第一條有關的方程解出相關項即可。
代碼
#include<stdio.h>
int main() {
int n, i, j, x, h1;
scanf("%d", &n);
int a[1001][1001];
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
scanf("%d", &a[i][j]);
x = a[2][3] - a[1][2];
h1 = (a[1][3] - x) / 2;
printf("%d ", h1);
for (i = 2; i <= n; i++)
printf("%d ", a[1][i] - h1);
return 0;
}