Before seeing the solution make sure that you tried enough. Don’t paste the whole code, just find out the logic. If you stuck in trouble, just inform me on comment.
/**Bismillahir Rahmanir Rahim.**/ #include <stdio.h> int main() { int tst, i; int m , n, mn, ans, x; scanf("%d", &tst); for(i=1; i<=tst; i++) { scanf("%d%d", &m, &n); mn = m * n; if(m==1 || n==1) ans = mn; else if(m==2 || n==2) { if(m==2) x = n; else x = m; if(x%4 == 1) ans = x+1; else if(x%4 == 2) ans = x+2; else if(x%4 == 3) ans = x+1; else if(x%4 == 0) ans = x; } else if(mn%2 == 0) ans = mn/2; else ans = (mn/2)+1; printf("Case %d: %d\n", i, ans); } return 0; }
can u tell the logic of this code plzz??
ReplyDeleteGot the logic,thank you
ReplyDelete#include
ReplyDelete#include
int main()
{
int i , j,m,n,l,p,t,r;
scanf("%d",&i);
for(j = 0;j<i; j++){
scanf("%d %d",&m,&n);
l = (n+1)/2;
p = l*m;
if(n%2==0){
t = p;
}
else{
r = m/2;
t = p - r;
}
printf("Case %d: %d\n",j+1,t);
}
return 0;
}
whats wrong in this
Can you explain what's happen when n or m is 2.Please explain this case.
ReplyDeletemainly it will make a circle of n=2 radius which makes at least m space for king vice versa then if m%4==1 then space++,if m%4==2 space+=2,otherwise if m%4==3 space++;as if m&&n!=2 then space will be m*n/2
DeleteIf u please explain the logic, it will highly helpful for us.
ReplyDeletemainly it will make a circle of n=2 radius which makes at least m space for king vice versa then if m%4==1 then space++,if m%4==2 space+=2,otherwise if m%4==3 space++;as if m&&n!=2 then space will be m*n/2
Delete