#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <ctime>
#include <algorithm>
#include <iostream>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
#define PB push_back
#define fi first
#define se second
#define MP make_pair
const int oo = 1000000000;
const int P = 1000000007;
int _, ca, E, L, R, B;
int main() {
scanf("%d", &_);
for (int ca = 1; ca <= _; ++ca) {
scanf("%d%d%d%d", &E, &L, &R, &B);
int n = E + L + R + B;
int mi = min(L, R);
if (max(L, R) > 0) mi += B;
else mi += max(0, B - 1);
mi = n - mi;
int mx = max(B - E - 1, 0);
mx = n - mx;
// printf("Case #%d: %d %d\n", ca, mi, mx);
printf("%d %d\n", mi, mx);
}
return 0;
}
我的代码。。。。。
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
int t;
cin >> t;
while(t -- )
{
int e, l, r, b;
scanf("%d %d %d %d", &e, &l ,&r, &b);
int minn = 0;
int maxn = 0;
if(e > 0 && l > 0 && r > 0)
{
minn = e + max(l, r);
if(b <= e) maxn = l + r + e + b;
else
maxn = l + r + e + e + 1;
printf("%d %d\n", minn, maxn);
}
else if(e == 0 && l > 0 && r > 0)
{
minn = max(l, r);
maxn = l + r;
if(b > 0) maxn = maxn + 1;
printf("%d %d\n", minn, maxn);
}
else if(e > 0 && l == 0 && r == 0 && b > 0)
{
minn = e + 1;
if(b > e) maxn = e + e + 1;
else maxn = e + b;
printf("%d %d\n", minn, maxn);
}
else if(e > 0 && l == 0 && r == 0 && b == 0)
{
printf("%d %d\n", e, e);
}
else if(e == 0 && l == 0 && r == 0 && b > 0)
{
maxn = 1;
minn = 1;
printf("%d %d\n", minn, maxn);
}
else if(e == 0 && b == 0 && ((l > 0 && r == 0) || (l == 0 && r > 0)))
{
maxn = max(r, l);
minn = max(r, l);
printf("%d %d\n", minn, maxn);
}
else if(e > 0 && b == 0 && ((l > 0 && r == 0) || (l == 0 && r > 0)))
{
maxn = max(r, l) + e;
minn = max(r, l) + e;
printf("%d %d\n", minn, maxn);
}
else if(e == 0 && b > 0 && ((l > 0 && r == 0) || (l == 0 && r > 0)))
{
minn = max(r, l);
maxn = max(r, l) + 1;
printf("%d %d\n", minn, maxn);
}
else if(e > 0 && b > 0 && ((l > 0 && r == 0) || (l == 0 && r > 0)))
{
minn = max(l, r) + e;
if(b <= e) maxn = max(l, r) + e + b;
else maxn = max(l, r) + e + e + 1;
printf("%d %d\n", minn, maxn);
}
}
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include <cstdio>
void Solve()
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
puts(((a - 1) ^ (b - 1) ^ (c - 1)) ? "Win" : "Lose");
return ;
}
int main()
{
int T; scanf("%d", &T);
while (T--) Solve();
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include<bits/stdc++.h>
using namespace std;
#define gc c=getchar()
#define r(x) read(x)
#define ll long long
template<typename T>
inline void read(T &x){
x=0;T k=1;char gc;
while(!isdigit(c)){if(c=='-')k=-1;gc;}
while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
}
const int N=1e7+7;
const int p=998244353;
vector<int>G[N];
int deg[N];
int s0[N];
int s1[N];
int s2[N];
inline int add(int a,int b){
return (a+=b)>=p?a-p:a;
}
inline int sub(int a,int b){
return (a-=b)<0?a+p:a;
}
inline ll calc(int x){
return (ll)x*(x-1)/2%p;
}
int main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
int T;
r(T);
while(T--){
int n;r(n);
for(int i=1;i<=n;++i)G[i].clear(),deg[i]=s0[i]=s1[i]=s2[i]=0;
for(int i=1;i<n;++i){
int u,v;r(u),r(v);
G[u].push_back(v);
G[v].push_back(u);
++deg[u],++deg[v];
}
for(int x=1;x<=n;++x){
s0[x]=deg[x];
for(auto &y:G[x]){
s1[x]=add(s1[x],deg[y]-1);
s2[x]=add(s2[x],calc(deg[y]-1));
}
}
int ans=0;
for(int x=1;x<=n;++x){
if(s0[x]>=4){
for(auto &y:G[x]){
if(s0[y]>=3){
int head=sub(s0[x],3);
int foot=sub(s0[y],1);
int hand=sub(s1[x],foot);
ans=add(ans,(ll)head*sub(calc(hand),sub(s2[x],calc(deg[y]-1)))%p*calc(foot)%p);
}
}
}
}
printf("%d\n",ans);
}
return 0;
}