/in/foo.cc: In function 'int main()':
/in/foo.cc:5:74: error: 'ans' was not declared in this scope
scanf("%d%d",&n,&t);for(register int i=1;i<=n;i++) scanf("%d",&c[i]),ans+=c[i];
^~~
/in/foo.cc:6:5: error: 'ans' was not declared in this scope
if(ans<n) return printf("-1\n"),0;for(register int i=1;i<=t;i++) for(register int j=n;j>=a[i];j--) f[j]=max(f[j],f[j-c[i]]+c[i]);
^~~
/in/foo.cc:6:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
if(ans<n) return printf("-1\n"),0;for(register int i=1;i<=t;i++) for(register int j=n;j>=a[i];j--) f[j]=max(f[j],f[j-c[i]]+c[i]);
^~
/in/foo.cc:6:36: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
if(ans<n) return printf("-1\n"),0;for(register int i=1;i<=t;i++) for(register int j=n;j>=a[i];j--) f[j]=max(f[j],f[j-c[i]]+c[i]);
^~~
/in/foo.cc:6:91: error: 'a' was not declared in this scope
if(ans<n) return printf("-1\n"),0;for(register int i=1;i<=t;i++) for(register int j=n;j>=a[i];j--) f[j]=max(f[j],f[j-c[i]]+c[i]);
^