查看: 477|回復: 0

[提問] TOJ189

[複製鏈接]

該用戶從未簽到

5

主題

10

帖子

92

積分

高一新生

Rank: 2

積分
92

台南一中資訊社

發表於 2015-1-25 13:22:44 | 顯示全部樓層 |閱讀模式

趕快加入我們來參與討論吧!

您需要 登錄 才可以下載或查看,沒有帳號?加入我們

x
求助T17留社考的最後一題,題目敘述的sample和我的程式跑的結果都一樣,但submit沒過,請大家幫我看一下程式碼,謝謝!!
#include<iostream>
#include<algorithm>
using namespace std;
int c[1000][1000],S[1000][1000];
int main()
{
        int N,M;
        cin>>N>>M;
        for(int i=1;i<=M;i++)
        {
                for(int j=1;j<=N;j++)
                {
                        cin>>c[i][j];
                }
        }
        for(int k=0;k<=M;k++)
        {
                for(int l=0;l<=N;l++)
                {
                        if(k==0||l==0) S[k][l]=0;
                        else S[k][l]=c[k][l]+S[k-1][l]+S[k][l-1]-S[k-1][l-1];
                }
        }
        int Q,x1,y1,x2,y2,eaten;
        cin>>Q;
        while(Q--)
        {
                bool flag=false;
                cin>>x1>>y1>>x2>>y2;
                if(x1>x2) swap(x1,x2);
                if(y1>y2) swap(y1,y2);
                eaten=S[y2][x2]-S[y2][x1-1]-S[y1-1][x2]+S[y1-1][x1-1];
                for(int m=1;m<y1;m++)
                {
                        for(int n=1;n<N;n++)
                        {
                                if(S[m][n]==eaten) flag=true;
                        }
                }
                for(int o=1;o<M;o++)
                {
                        for(int p=1;p<x1;p++)
                        {
                                if(S[o][p]==eaten) flag=true;
                        }
                }
                if(flag) cout<<"Y\n";
                else cout<<"N\n";
        }
        return 0;
}
回復

使用道具 檢舉

您需要登錄後才可以回帖 登入 | 加入我們

本版積分規則

快速回覆 返回頂部 返回列表