Pagini recente » Cod sursa (job #2051062) | Cod sursa (job #1910506) | Cod sursa (job #957786) | Cod sursa (job #1975780) | Cod sursa (job #213308)
Cod sursa(job #213308)
using namespace std;
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <string>
#include <algorithm>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <queue>
#include <utility>
#include <functional>
#define pb push_back
#define f first
#define s second
#define sz size
#define II inline
#define ll long long
#define db double
#define FOR(i,a,b) for(int i=a;i<=b;++i)
#define all(v) v.begin() , v.end()
#define C(v) C.erase( all(v) )
#define FORit(it,v) for(it = (v).begin();it != (v).end();++it)
#define mp make_pair
#define N_MAX 1<<10
#define L_MAX 1<<20
#define oo 1<<28
#define IN "fold.in"
#define OUT "fold.out"
int T,K(-1);
char buffer[L_MAX];
short int A[210],B[210],C[210],D[210];
II void scan()
{
// freopen(IN,"r",stdin);
scanf("%d\n",&T);
fread(buffer,1,1<<20,stdin);
// fclose(stdin);
// freopen(OUT,"w",stdout);
}
II void get(short int V[])
{
memset(V,0,sizeof(V));
for(;buffer[K] < '0' || buffer[K] > '9';++K);
for(;buffer[K] >= '0' && buffer[K] <= '9';++K)
V[++V[0] ] = buffer[K] - '0';
FOR(i,1,V[0]/2)
swap(V[i],V[ V[0] - i + 1]);
}
II void add(short int A[], short int B[])
{
int i, t = 0;
for (i=1; i<=A[0] || i<=B[0] || t; i++, t/=10)
A[i] = (t += A[i] + B[i]) % 10;
A[0] = i - 1;
}
II void sub(short int A[], short int B[])
{
int i, t = 0;
for (i = 1; i <= A[0]; i++)
A[i] += (t = (A[i] -= B[i] + t) < 0) * 10;
for (; A[0] > 1 && !A[A[0]]; A[0]--);
}
II void solve()
{
get(B);
get(C);
get(D);
memset(A,0,sizeof(A));
add(A,C);
add(A,C);
sub(A,B);
sub(A,D);
for(int i=A[0];i>=1;--i)
printf("%d",A[i]);
printf("\n");
}
int main()
{
for(scan(),++T;--T;solve() );
return 0;
}