/**
tst 2024 problem 1
*/
#pragma GCC optimize("Ofast,unroll-loops")
#include<bits/stdc++.h>
#define int long long
#define ll long long
#define down cout<<'\n';
#define debug cout<<" cucuucucuuu",down
#define modwwe int t;cin>>t; while(t--)
#define bit(i,j) (i>>j&1)
#define sobit(a) __builtin_popcountll(a)
#define task2 "ftree"
#define task "test"
#define fin(x) freopen(x".inp","r",stdin)
#define fou(x) freopen(x".out","w",stdout)
#define pb push_back
#define mask(k) (1<<k)
#define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms";
using namespace std;
#define getchar_unlocked getchar
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
int rand(int l,int r)
{
return uniform_int_distribution<int>(l,r)(rd);
}
void phongbeo();
const int inf = 1e16;
const ll mod2 = 1e9+7;
const ll base=67;
int n, m, s1, s2, s4, s3, sf, k, s5, s6, mx, s7, s8, s9, mx2, res, dem2 = 0, dem = 0, s33, dem3, dem4, mid, l2, r2, center;
int i, s10, s12,k1,k2,k3,s11,lim,w,l,r ;
int kk;
int t;
int el = 19;
main()
{
if(fopen(task2".inp","r"))
{
fin(task2);
fou(task2);
}
if(fopen(task".inp","r"))
{
fin(task);
fou(task);
}
ios_base::sync_with_stdio(0);
cout.tie(0);
cin.tie(0);
/// cin>>s1;
//int t;cin>>t; while(t--)
phongbeo();
// checktime
}
int a[200];
int mouse[200];
bool c[200];
int day[200];
void mouse_move()
{
for(int i=2; i<n; i++)
{
if(c[i]) continue;
int x=rand(0,1);
if(x==0) x=-1;
a[i+x]+=mouse[i];
}
if(!c[1])
a[2]+=mouse[1];
if(!c[n])
a[n-1]+=mouse[n];
for(int i=1; i<=n; i++)
{
if(c[i])
{
mouse[i]+=a[i],a[i]=0;
continue;
}
mouse[i]=a[i],a[i]=0;
}
}
void pick(int x)
{
s4=mouse[x];
if(c[x])s4=0;
if(s4!=0)mouse[x]=0;
mouse_move();
return;
}
void check(vector<int>& v)
{
day[dem+1]=0;
for(auto x:v)
if(mouse[x]>0)
{
day[dem+1]=1;
return;
}
}
pair<int,int> receive()
{
dem++;
int ans=-1;
int s44=s4;
if(dem>n)ans=day[dem-n];
s4=0;
return {s44,ans};
}
int solve(int n,int m,int t)
{
int total_mouse=0;
for(int i=2; i<n; i++)
{
pick(i);
pair<int,int> rec=receive();
total_mouse+=rec.first;
}
int start;
if(n%2==1) start=2;
else start=1;
for(int i=start; i<n; i++)
{
pick(i);
pair<int,int> rec=receive();
total_mouse+=rec.first;
}
if(total_mouse==m)return -1;
for(int i=0; i<6; i++)
{
vector<int> v;
for(int j=1; j<=n; j++)
if(bit(j,i))v.pb(j);
check(v);
pair<int,int> rec=receive();
}
int tim=0;
for(int i=1; i<=n; i++)
{
pair<int,int> rec=receive();
if(rec.second!=-1)
{
tim+=rec.second*mask(dem2);
dem2++;
}
}
return tim;
}
void phongbeo()
{
cin>>n>>m>>t;
for(int i=1; i<=m; i++)
{
int x=rand(1,n);
mouse[x]++;
}
memset(day,-1,sizeof day);
c[rand(1,n)]=1;
int x=solve(n,m,t);
cout<<dem,down
if(x==-1)
{
for(int i=1; i<=n; i++)
if(mouse[i]!=0) assert(0);
}
else if(!c[x])assert(0);
}
컴파일 시 표준 에러 (stderr) 메시지
fountain.cpp:36:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
36 | main()
| ^~~~
fountain.cpp: In function 'int main()':
fountain.cpp:15:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
15 | #define fin(x) freopen(x".inp","r",stdin)
| ~~~~~~~^~~~~~~~~~~~~~~~~~~
fountain.cpp:40:9: note: in expansion of macro 'fin'
40 | fin(task2);
| ^~~
fountain.cpp:16:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
16 | #define fou(x) freopen(x".out","w",stdout)
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~
fountain.cpp:41:9: note: in expansion of macro 'fou'
41 | fou(task2);
| ^~~
fountain.cpp:15:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
15 | #define fin(x) freopen(x".inp","r",stdin)
| ~~~~~~~^~~~~~~~~~~~~~~~~~~
fountain.cpp:45:9: note: in expansion of macro 'fin'
45 | fin(task);
| ^~~
fountain.cpp:16:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
16 | #define fou(x) freopen(x".out","w",stdout)
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~
fountain.cpp:46:9: note: in expansion of macro 'fou'
46 | fou(task);
| ^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |