The Solutions of Hydro.ac-Undertale2
Hydro.ac-Undertale
last Solutions
U1015
#include<bits/stdc++.h>
#include"WATER.h"
using namespace std;
Num ins;
double t1,t2,k;
int main(){
Give_In();
ins=GetIn();
W_D1(ins.k);
t1=Drink();
W_D2(ins.k);
t2=Drink();
W_D1((t2-((ins.l+ins.r)/2))*(ins.a+ins.e)/2/(t2-t1));
W_D2((((ins.l+ins.r)/2)-t1)*(ins.a+ins.e)/2/(t2-t1));
submit();
return 0;
}
additional file
config.yaml:
checker_type: testlib
checker: spj.cc
user_extra_files:
- WATER.h
Water.h
#include<bits/stdc++.h>
#define rand(x,y) (rand()%(y-x+1))+x
namespace Water {
static bool hasSubmitted = false,hasGiVe_In = false;
static double TPT = 0;
static int l,r,x,y,a=1000000,k,e,num=0;
struct Num{int a,k,l,r,e;}N_U_M;
Num GetIn(){return N_U_M;}
void RE() {puts("re");exit(0);}
void W_D1(int s){if(s+num>a)s=a-num;TPT+=s*x;num+=s;}
void W_D2(int s){if(s+num>a)s=a-num;TPT+=s*y;num+=s;}
double Drink(){if(num>=k){double ret=1.0*TPT/num;num-=k;TPT-=1.0*k*ret;return ret;}else return -1.0;}
void submit(){if(hasSubmitted)RE();if(num<e)puts("Le55");else if(l>TPT/num)puts("Co1d");else if(TPT/num>r)puts("H0t");else if(l<=TPT/num&&TPT/num<=r)puts("Ye5");else puts("ERR");hasSubmitted=1;}
void Give_In(){if(hasGiVe_In)RE();srand(time(0));l=rand(100,500),r=rand(500,999),x=rand(0,l),y=rand(r,1500),a=1000000,k=rand(100,999),e=rand(100000,500000);hasGiVe_In=1;N_U_M=(Num){a,k,l,r,e};};
}
using Water::RE;using Water::W_D1;using Water::W_D2;using Water::Drink;using Water::GetIn;using Water::submit;using Water::Give_In;using Water::Num;
spj.cc:
#include <bits/stdc++.h>
#include "testlib.h"
using namespace std;
int main(int argc, char* argv[]) {
registerTestlibCmd(argc, argv);
string out=ouf.readString();
if(out=="Ye5")quitf(_ok, "Correct");
else if(out=="H0t")quitf(_wa,"The Water is too hot.");
else if(out=="Co1d")quitf(_wa,"The Water is too cold.");
else if(out=="Le55")quitf(_wa,"The Water is too less.");
quitf(_wa,"You have done something strangly.");
}
U1016
#include<iostream>
#include<cstdio>
#define maxn 1000005
using namespace std;
int n;
int a[maxn],vis[maxn],prime[maxn],cnt=0;
int main(){
for(int i=2;i<maxn;i++){
if(!vis[i]){
vis[i]=1;
a[i]=1;
prime[++cnt]=i;
}
for(int j=i+i;j<maxn;j+=i){
vis[j]=1;
}
}
while(1){
scanf("%d",&n);
if(n==0){
return 0;
}
if(n==1){
printf("ASGORE DREEMURR is wrong\n");
continue;
}
for(int i=2;i<=n/2+1;i++){
if(a[i]&&a[n-i]){
printf("%d = %d + %d\n",n,i,n-i);
break;
}
if(i==n/2+1){
printf("ASGORE DREEMURR is wrong\n");
}
}
}
return 0;
}