Submission #3388458
Source Code Expand
#include<bits/stdc++.h>
#define ui unsigned int
#define ll long long
#define db double
#define ld long double
#define ull unsigned long long
#define REP(a,b,c) for(register int a=(b),a##end=(c);a<=a##end;++a)
#define DEP(a,b,c) for(register int a=(b),a##end=(c);a>=a##end;--a)
const int MAXN=100+10,MAXV=8000+10,MAXM=800000+10,inf=0x3f3f3f3f;
int n,e=1,cnt,id[2][MAXV],beg[MAXV<<1],nex[MAXM<<1],to[MAXM<<1],cap[MAXM<<1],s,t,level[MAXV],cur[MAXV],vis[MAXV],clk;
std::queue<int> q;
std::vector<int> V;
template<typename T> inline void read(T &x)
{
T data=0,w=1;
char ch=0;
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')w=-1,ch=getchar();
while(ch>='0'&&ch<='9')data=((T)data<<3)+((T)data<<1)+(ch^'0'),ch=getchar();
x=data*w;
}
template<typename T> inline void write(T x,char ch='\0')
{
if(x<0)putchar('-'),x=-x;
if(x>9)write(x/10);
putchar(x%10+'0');
if(ch!='\0')putchar(ch);
}
template<typename T> inline void chkmin(T &x,T y){x=(y<x?y:x);}
template<typename T> inline void chkmax(T &x,T y){x=(y>x?y:x);}
template<typename T> inline T min(T x,T y){return x<y?x:y;}
template<typename T> inline T max(T x,T y){return x>y?x:y;}
inline void insert(int x,int y,int z)
{
to[++e]=y;
nex[e]=beg[x];
beg[x]=e;
cap[e]=z;
to[++e]=x;
nex[e]=beg[y];
beg[y]=e;
cap[e]=0;
}
inline bool bfs()
{
memset(level,0,sizeof(level));
level[s]=1;
q.push(s);
while(!q.empty())
{
int x=q.front();
q.pop();
for(register int i=beg[x];i;i=nex[i])
if(!level[to[i]]&&cap[i])level[to[i]]=level[x]+1,q.push(to[i]);
}
return level[t];
}
inline int dfs(int x,int maxflow)
{
if(x==t||!maxflow)return maxflow;
vis[x]=clk;
int res=0;
for(register int &i=cur[x];i;i=nex[i])
if((vis[x]^vis[to[i]])&&cap[i]&&level[to[i]]==level[x]+1)
{
int f=dfs(to[i],min(maxflow,cap[i]));
res+=f;
maxflow-=f;
cap[i]-=f;
cap[i^1]+=f;
if(!maxflow)break;
}
return res;
}
inline int Dinic()
{
int res=0;
while(bfs())memcpy(cur,beg,sizeof(cur)),clk++,res+=dfs(s,inf);
return res;
}
int main()
{
read(n);
REP(i,1,n)
{
int x,y,z;read(x);read(y);read(z);
REP(j,1,x-1)
{
int l=j*y*z,r=(x-j)*y*z;
V.push_back(l);
if(!id[0][l])id[0][l]=++cnt;
if(!id[1][r])id[1][r]=++cnt;
insert(id[0][l],id[1][r],1);
}
REP(j,1,y-1)
{
int l=j*x*z,r=(y-j)*x*z;
V.push_back(l);
if(!id[0][l])id[0][l]=++cnt;
if(!id[1][r])id[1][r]=++cnt;
insert(id[0][l],id[1][r],1);
}
REP(j,1,z-1)
{
int l=j*x*y,r=(z-j)*x*y;
V.push_back(l);
if(!id[0][l])id[0][l]=++cnt;
if(!id[1][r])id[1][r]=++cnt;
insert(id[0][l],id[1][r],1);
}
}
std::sort(V.begin(),V.end());
V.erase(std::unique(V.begin(),V.end()),V.end());
s=cnt+1,t=s+1;
REP(i,1,MAXV-1)
{
if(id[0][i])insert(s,id[0][i],1);
if(id[1][i])insert(id[1][i],t,1);
}
write((V.size()<<1)-Dinic(),'\n');
return 0;
}
Submission Info
Submission Time |
|
Task |
D - 切り分けできるかな? |
User |
hyj542682306 |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2935 Byte |
Status |
AC |
Exec Time |
3 ms |
Memory |
4608 KB |
Judge Result
Set Name |
part1 |
part2 |
Score / Max Score |
20 / 20 |
80 / 80 |
Status |
|
|
Set Name |
Test Cases |
part1 |
small/small_00_sample_02.txt, small/small_01_rand_00.txt, small/small_01_rand_01.txt, small/small_01_rand_02.txt, small/small_01_rand_03.txt, small/small_01_rand_04.txt, small/small_01_rand_05.txt, small/small_01_rand_06.txt, small/small_01_rand_07.txt, small/small_01_rand_08.txt, small/small_01_rand_09.txt, small/small_02_maxrand_00.txt, small/small_02_maxrand_01.txt, small/small_02_maxrand_02.txt, small/small_02_maxrand_03.txt, small/small_02_maxrand_04.txt, small/small_02_maxrand_05.txt, small/small_02_maxrand_06.txt, small/small_02_maxrand_07.txt, small/small_02_maxrand_08.txt, small/small_02_maxrand_09.txt, small/small_03_maxrandp_00.txt, small/small_03_maxrandp_01.txt, small/small_03_maxrandp_02.txt, small/small_03_maxrandp_03.txt, small/small_03_maxrandp_04.txt, small/small_03_maxrandp_05.txt, small/small_03_maxrandp_06.txt, small/small_03_maxrandp_07.txt, small/small_03_maxrandp_08.txt, small/small_03_maxrandp_09.txt, small/small_99_min2.txt, small/small_99_minmin.txt |
part2 |
small/small_00_sample_02.txt, small/small_01_rand_00.txt, small/small_01_rand_01.txt, small/small_01_rand_02.txt, small/small_01_rand_03.txt, small/small_01_rand_04.txt, small/small_01_rand_05.txt, small/small_01_rand_06.txt, small/small_01_rand_07.txt, small/small_01_rand_08.txt, small/small_01_rand_09.txt, small/small_02_maxrand_00.txt, small/small_02_maxrand_01.txt, small/small_02_maxrand_02.txt, small/small_02_maxrand_03.txt, small/small_02_maxrand_04.txt, small/small_02_maxrand_05.txt, small/small_02_maxrand_06.txt, small/small_02_maxrand_07.txt, small/small_02_maxrand_08.txt, small/small_02_maxrand_09.txt, small/small_03_maxrandp_00.txt, small/small_03_maxrandp_01.txt, small/small_03_maxrandp_02.txt, small/small_03_maxrandp_03.txt, small/small_03_maxrandp_04.txt, small/small_03_maxrandp_05.txt, small/small_03_maxrandp_06.txt, small/small_03_maxrandp_07.txt, small/small_03_maxrandp_08.txt, small/small_03_maxrandp_09.txt, small/small_99_min2.txt, small/small_99_minmin.txt, large/large_00_sample_01.txt, large/large_00_sample_03.txt, large/large_00_sample_04.txt, large/large_01_rand_00.txt, large/large_01_rand_01.txt, large/large_01_rand_02.txt, large/large_01_rand_03.txt, large/large_01_rand_04.txt, large/large_01_rand_05.txt, large/large_01_rand_06.txt, large/large_01_rand_07.txt, large/large_01_rand_08.txt, large/large_01_rand_09.txt, large/large_02_maxrand_00.txt, large/large_02_maxrand_01.txt, large/large_02_maxrand_02.txt, large/large_02_maxrand_03.txt, large/large_02_maxrand_04.txt, large/large_02_maxrand_05.txt, large/large_02_maxrand_06.txt, large/large_02_maxrand_07.txt, large/large_02_maxrand_08.txt, large/large_02_maxrand_09.txt, large/large_03_maxrandp_00.txt, large/large_03_maxrandp_01.txt, large/large_03_maxrandp_02.txt, large/large_03_maxrandp_03.txt, large/large_03_maxrandp_04.txt, large/large_03_maxrandp_05.txt, large/large_03_maxrandp_06.txt, large/large_03_maxrandp_07.txt, large/large_03_maxrandp_08.txt, large/large_03_maxrandp_09.txt |
Case Name |
Status |
Exec Time |
Memory |
large/large_00_sample_01.txt |
AC |
2 ms |
4480 KB |
large/large_00_sample_03.txt |
AC |
1 ms |
4480 KB |
large/large_00_sample_04.txt |
AC |
1 ms |
256 KB |
large/large_01_rand_00.txt |
AC |
2 ms |
4480 KB |
large/large_01_rand_01.txt |
AC |
3 ms |
4480 KB |
large/large_01_rand_02.txt |
AC |
2 ms |
4480 KB |
large/large_01_rand_03.txt |
AC |
2 ms |
4480 KB |
large/large_01_rand_04.txt |
AC |
2 ms |
4480 KB |
large/large_01_rand_05.txt |
AC |
3 ms |
4608 KB |
large/large_01_rand_06.txt |
AC |
3 ms |
4480 KB |
large/large_01_rand_07.txt |
AC |
2 ms |
4480 KB |
large/large_01_rand_08.txt |
AC |
2 ms |
4480 KB |
large/large_01_rand_09.txt |
AC |
2 ms |
4480 KB |
large/large_02_maxrand_00.txt |
AC |
3 ms |
4608 KB |
large/large_02_maxrand_01.txt |
AC |
3 ms |
4608 KB |
large/large_02_maxrand_02.txt |
AC |
3 ms |
4480 KB |
large/large_02_maxrand_03.txt |
AC |
3 ms |
4480 KB |
large/large_02_maxrand_04.txt |
AC |
3 ms |
4608 KB |
large/large_02_maxrand_05.txt |
AC |
3 ms |
4608 KB |
large/large_02_maxrand_06.txt |
AC |
3 ms |
4480 KB |
large/large_02_maxrand_07.txt |
AC |
3 ms |
4480 KB |
large/large_02_maxrand_08.txt |
AC |
3 ms |
4480 KB |
large/large_02_maxrand_09.txt |
AC |
3 ms |
4480 KB |
large/large_03_maxrandp_00.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_01.txt |
AC |
3 ms |
4480 KB |
large/large_03_maxrandp_02.txt |
AC |
3 ms |
4480 KB |
large/large_03_maxrandp_03.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_04.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_05.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_06.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_07.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_08.txt |
AC |
2 ms |
4480 KB |
large/large_03_maxrandp_09.txt |
AC |
2 ms |
4480 KB |
small/small_00_sample_02.txt |
AC |
2 ms |
4480 KB |
small/small_01_rand_00.txt |
AC |
2 ms |
4480 KB |
small/small_01_rand_01.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_02.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_03.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_04.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_05.txt |
AC |
2 ms |
4480 KB |
small/small_01_rand_06.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_07.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_08.txt |
AC |
1 ms |
4480 KB |
small/small_01_rand_09.txt |
AC |
1 ms |
4480 KB |
small/small_02_maxrand_00.txt |
AC |
1 ms |
4480 KB |
small/small_02_maxrand_01.txt |
AC |
1 ms |
4480 KB |
small/small_02_maxrand_02.txt |
AC |
1 ms |
4480 KB |
small/small_02_maxrand_03.txt |
AC |
1 ms |
4480 KB |
small/small_02_maxrand_04.txt |
AC |
1 ms |
4480 KB |
small/small_02_maxrand_05.txt |
AC |
2 ms |
4480 KB |
small/small_02_maxrand_06.txt |
AC |
2 ms |
4480 KB |
small/small_02_maxrand_07.txt |
AC |
2 ms |
4480 KB |
small/small_02_maxrand_08.txt |
AC |
2 ms |
4480 KB |
small/small_02_maxrand_09.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_00.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_01.txt |
AC |
2 ms |
4480 KB |
small/small_03_maxrandp_02.txt |
AC |
2 ms |
4480 KB |
small/small_03_maxrandp_03.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_04.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_05.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_06.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_07.txt |
AC |
2 ms |
4480 KB |
small/small_03_maxrandp_08.txt |
AC |
1 ms |
4480 KB |
small/small_03_maxrandp_09.txt |
AC |
1 ms |
4480 KB |
small/small_99_min2.txt |
AC |
1 ms |
4480 KB |
small/small_99_minmin.txt |
AC |
1 ms |
256 KB |