Cod sursa(job #2071062)
Utilizator | Data | 20 noiembrie 2017 10:22:56 | |
---|---|---|---|
Problema | Zone | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.84 kb |
#include <fstream>
using namespace std;
ifstream fin ("date.in");
ofstream fout("date.out");
int n, s[11], i, j, v[100][100],c1,l1,l2,c2,k1,k2,k3,st,dr,mid;
int main ()
{
fin>>n;
for(i=1;i<=9;i++)
fin>>s[i];
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
fin>>v[i][j];
v[i][j]+=v[i][j-1]+v[i-1][j]-v[i-1][j-1];
}
for(k1=1;k1<=9;k1++)
for(k2=1;k2<=9;k2++)
if(k2!=k1)
for(k3=1;k3<=9;k3++)
if(k3!=k2&&k3!=k1)
for(l1=1;l1<n-1;l1++)
{
l1=-1;l2=-1;c1=-1;c2=-1;
st=1;
dr=n-2;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[l1][mid]==k1)
{
c1=mid;
break;
}
else
if(v[l1][mid]<k1)
st=mid+1;
else
dr=mid-1;
}
st=c1+1;
dr=n-1;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[l1][mid]-v[l1][c1]==k2)
{
c2=mid;
break;
}
else
if(v[l1][mid]<k2)
st=mid+1;
else
dr=mid-1;
}
st=l1+1;
dr=n-1;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[mid][c1]-v[l1][c1]==k3)
{
l2=mid;
break;
}
else
if(v[l1][mid]<k3)
st=mid+1;
else
dr=mid-1;
}
if(l1!=-1&&l2!=-1&&c1!=-1&&c2!=-1)
fout<<l1<<" "<<l2<<" "<<c1<<" "<<c2<<"\n";
}
return 0;
}