제출 #88679

#제출 시각아이디문제언어결과실행 시간메모리
88679khohko최솟값 배열 (IZhO11_hyper)C++17
100 / 100
1687 ms225628 KiB
#include<bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
#define ll int
#define pb push_back
#define fr first
#define sc second
#define ARRS int(1e5+11)
#define MAX ((int)(1e9+1))
#define HS1 ((long long)(1000001329))
#define HS2 ((long long)(1000001531))
#define MOD ((long long)1000000007)
#define MD ((long long)1000000007)



ll i,j,l,k,n,m,p,d,mx,x,o,y,ans,res,sum;

ll a[36][36][36][36];
ll mn[37][36][36][36][36];
ll N,pp;
ll go(ll n,ll i,ll j,ll k,ll p){
    if(n==1)
        return mn[n][i][j][k][p]=a[i][j][k][p];
    if(i+n>N)return MAX;
    if(j+n>N)return MAX;
    if(k+n>N)return MAX;
    if(p+n>N)return MAX;

    if(mn[n][i][j][k][p]!=MAX)return mn[n][i][j][k][p];
    mn[n][i][j][k][p]=min({a[i][j][k][p],
             go(n-1,i,j,k,p+1),
             go(n-1,i,j,k+1,p),
             go(n-1,i,j,k+1,p+1),
             go(n-1,i,j+1,k,p),
             go(n-1,i,j+1,k,p+1),
             go(n-1,i,j+1,k+1,p),
             go(n-1,i,j+1,k+1,p+1),
             go(n-1,i+1,j,k,p),
             go(n-1,i+1,j,k,p+1),
             go(n-1,i+1,j,k+1,p),
             go(n-1,i+1,j,k+1,p+1),
             go(n-1,i+1,j+1,k,p),
             go(n-1,i+1,j+1,k,p+1),
             go(n-1,i+1,j+1,k+1,p),
             go(n-1,i+1,j+1,k+1,p+1)
             });
   // cout<<i<<" "<<j<<" "<<k<<" "<<p<<" "<<n<<" "<<mn[n][i][j][k][p]<<endl;
    return mn[n][i][j][k][p];
}

int main(){
    #ifdef KHOKHO
        freopen("in.in","r",stdin);
        freopen("out.out","w+",stdout);
    #endif //KHOKHO
    cin>>n>>m;
    N=n;
    for(i=0; i<n; i++){
    for(j=0; j<n; j++){
    for(k=0; k<n; k++){
    for(p=0; p<n; p++){
        //cin>>a[i][j][k][p];
        scanf("%d",&a[i][j][k][p]);
     //   cout<<a[i][j][k][p]<<" ";
    }}}}//cout<<endl;}cout<<endl;}cout<<endl;}
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
         for(k=0; k<n; k++)
                for(p=0; p<n; p++)
                for(pp=0; pp<=m; pp++)
                    mn[pp][i][j][k][p]=MAX;
      for(i=0; i<n; i++)
        for(j=0; j<n; j++)
         for(k=0; k<n; k++)
                for(p=0; p<n; p++)
                    go(m,i,j,k,p);

   // go(m,0,0,1,0);
    for(i=0; i<n-m+1; i++){
    for(j=0; j<n-m+1; j++){
    for(k=0; k<n-m+1; k++){
    for(p=0; p<n-m+1; p++){
     //   cin>>a[i][j][k][p];
        printf("%d ",mn[m][i][j][k][p]);
    }}}}

    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

hyper.cpp: In function 'int main()':
hyper.cpp:64:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d",&a[i][j][k][p]);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...